嘿,我只是想知道,你如何使用PHP上传文件直接到您的网站?例如将文件上传到网站?
:
人使用浏览按钮查找要上传的文件,然后一旦选定的文件目录中的一个文本框出现,当他们点击“上传”按钮,上传至一个目录网站命名为“上传”。
有人能告诉我如何做到这一点,也许解释一些关于或链接到一个资源,这将帮助我吗?
谢谢。
嘿,我只是想知道,你如何使用PHP上传文件直接到您的网站?例如将文件上传到网站?
:
人使用浏览按钮查找要上传的文件,然后一旦选定的文件目录中的一个文本框出现,当他们点击“上传”按钮,上传至一个目录网站命名为“上传”。
有人能告诉我如何做到这一点,也许解释一些关于或链接到一个资源,这将帮助我吗?
谢谢。
有一个表格,把一个文件输入它:
<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);
好吧,但你知道我会怎么做上传的一面吗? –
添加了附加信息 – tskuzzy
确保您在表单元素指定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>
您应该使用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']);
当然,你想要做更多的理智检查,以确保你不覆盖一个存在的文件并且文件成功上传而没有错误。
一切都在PHP手册的Handling file uploads部分进行了说明。
我建议避免使用MAX_FILE_SIZE隐藏字段,因为it's not part of any standard,没有已知的浏览器支持,并且很容易在服务器端将其修改为affect PHP behavior。
[PHP手册:处理文件上传](http://php.net/manual/en/features.file-upload.php) –