我正在编写一个PHP来将.PDF上传到我的服务器。目前,当我“上传”文件时,系统就像任务已完成一样,但文件未显示在指定的文件夹中。
表格代码
<form id="add" action="action.php" method="post" enctype="multipart/form-data">
<table><tr><td>
<input type="file" name="uploadedfile" id="uploadedfile" required />
</td></tr><tr><td>
<input id="upload" type="submit" value="Upload">
</td></tr></tr></table></form>
PHP代码
move_uploaded_file($_FILES["uploadedfile"]["tmp_name"],"Flyers/".$_FILES["uploadedfile"]["name"]);
答案 0 :(得分:0)
我认为问题可能是您尝试写入运行脚本的文件夹,但您需要为其提供完整路径..
尝试: move_uploaded_file($ _ FILES [ “UploadedFile的”] [ “tmp_name的值”], “/传单/".$_ FILES [” UploadedFile的 “] [” 名称“]);
在传单之前使用/并确保在服务器的根目录中有一个Flyers目录,例如。的public_html /传单并且它是可写的。 (您的ftp客户端应该为您提供一些检查文件夹权限的方法。)
答案 1 :(得分:0)
首先,使用绝对路径而不是相对路径总是一个好主意,因为您可能会“丢失”所有不同的文件。
move_uploaded_file($_FILES["uploadedfile"]["tmp_name"], __DIR__ . "/Flyers/".$_FILES["uploadedfile"]["name"]);
__DIR__
是包含此代码的脚本所在的目录,相应地进行更改
其次,您应该检查move_uploaded_file
的返回值,看它是否成功。这个函数返回boolean
,所以如果它是true
那么你知道它是成功的,否则就会出错。
通常是文件夹权限。如果未正确配置您的Web服务器,则可能存在权限问题,即运行PHP的用户对该文件夹没有适当的权限,并且可能被拒绝写入该文件夹的权限,这将导致move_uploaded_file
中断。
要解决此问题,您需要修复您的服务器配置...我将不会在此处介绍,因为有太多的变量会影响这一点。
但您可以尝试使用ftp软件,ssh或在带有chmod
或umask
的php中设置要上传到的文件夹的777或775权限(在PHP文档中搜索它们以查看怎么用)