PHP上传文件未在服务器上显示

时间:2014-02-27 17:02:27

标签: php file-upload

我正在编写一个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"]);

2 个答案:

答案 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或在带有chmodumask的php中设置要上传到的文件夹的777或775权限(在PHP文档中搜索它们以查看怎么用)