2011-08-20 128 views
2

嘿,我只是想知道,你如何使用PHP上传文件直接到您的网站?例如将文件上传到网站?

人使用浏览按钮查找要上传的文件,然后一旦选定的文件目录中的一个文本框出现,当他们点击“上传”按钮,上传至一个目录网站命名为“上传”。

有人能告诉我如何做到这一点,也许解释一些关于或链接到一个资源,这将帮助我吗?

谢谢。

+3

[PHP手册:处理文件上传](http://php.net/manual/en/features.file-upload.php) –

回答

1

有一个表格,把一个文件输入它:

<form name="my_form" method="post" enctype="multipart/form-data" action="my_php_script.php"> 
    <input type="file" name="my_file" /> 
</form> 

然后在my_php_script.php,处理文件上传就像任何其他POST请求。有关后端的详细信息,请参见此页面:http://www.tizag.com/phpT/fileupload.php

$_FILES阵列保存与上传文件有关的数据。

  • $_FILES['uploadedfile']['name'] - 用户上传文件的原始路径。
  • $_FILES['uploadedfile']['tmp_name'] - 驻留在服务器上的临时文件的路径。该文件应该存在于临时目录中的服务器上,并且具有临时名称。

您应该将文件从临时目录移动到更永久的存储区(如uploads/文件夹)。您可以使用move_uploaded_file()功能,像这样做:

move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $uploads_folder); 
+0

好吧,但你知道我会怎么做上传的一面吗? –

+0

添加了附加信息 – tskuzzy

0

确保您在表单元素指定multipart/form-data,则包括文件字段。您需要在接收端执行一些额外的工作,以获取文件数据并将其存储为适当的名称,而不是服务器上的默认/临时目录。

<form action="/some/url" enctype="multipart/form-data" method="post"> 
    <input type="file" name="some_file" /> 
    <intput type="submit" name="Upload that file!" /> 
</form> 
0

您应该使用HTML形式enctype设置为multipart/form-data像:

<form action="upload_file.php" method="post" enctype="multipart/form-data"> 
    <input type="file" name="thefile" /> 
</form> 

然后在PHP中,你可以检查$_FILES['thefile']得到你想要的信息。该文件将在$_FILES['thefile']['tmpname'],你可以从那里用move_uploaded_file()它移动到你上传的文件到正确的文件夹:

move_uploaded_file($_FILES['thefile']['tmpname'], 'uploads/'.$_FILES['thefile']['name']); 

当然,你想要做更多的理智检查,以确保你不覆盖一个存在的文件并且文件成功上传而没有错误。