Php 文件上载(在本地工作,但不在远程服务器上)

Php 文件上载(在本地工作,但不在远程服务器上),php,apache,file,upload,Php,Apache,File,Upload,我正试图通过HTML表单将一个文件(msword/doc)上传到Apache服务器文件夹。当我在本地测试它时(我通过MAMP进行测试),它可以工作,但是当我将它上传到远程服务器(比如GoDaddy)时,它就不工作了。它显示“文件上传有问题” 下面是处理文件上载的代码片段。我想不出我的电脑出了什么问题 // Move the file to the target upload folder $target = FILE_UPLOADPATH . basename($new_

我正试图通过HTML表单将一个文件(msword/doc)上传到Apache服务器文件夹。当我在本地测试它时(我通过MAMP进行测试),它可以工作,但是当我将它上传到远程服务器(比如GoDaddy)时,它就不工作了。它显示“文件上传有问题”

下面是处理文件上载的代码片段。我想不出我的电脑出了什么问题

      // Move the file to the target upload folder
      $target = FILE_UPLOADPATH . basename($new_file);
      if (move_uploaded_file($_FILES['new_file']['tmp_name'], $target)) 
      {
        // The new file move was successful, now make sure any old file is deleted
        if (!empty($old_file) && ($old_file != $new_file)) 
        {
          @unlink(FILE_UPLOADPATH . $old_file);
        }
      }
      else 
      {
        // The new file move failed, so delete the temporary file and set the error flag
        @unlink($_FILES['new_file']['tmp_name']);
        echo 'There was a problem with the file upload.' . PHP_EOL;
      }

如果
$\u FILES['new\u file']['error']==0
,则上载不是问题,但调用
移动上载的\u file()
是错误的。您对试图将文件移动到的目录的权限可能不正确。

您确定要上载到的文件夹具有写入文件的权限吗?如果没有,请使用chmod 0777并进行测试。

您的目标文件夹是否具有适当的权限?写入到的目录通常需要775:


另外,是否希望用户能够直接访问该文件?如果不是,您应该考虑将文件写入到Web根目录上方的文件夹。 对我来说,我碰巧在本地使用php的upload_max_filesize下的文件进行测试,而在远程使用upload_max_filesize上的文件进行测试。有关更多信息,请参阅。

您能否共享完整的$\u文件数组,因为error参数中的值可能有助于了解这一点这里是$\u文件数组输出:数组([new\u file]=>array([name]=>sample.doc[type]=>msword/doc[tmp\u name]=>/tmp/phpsTu20P[error]=>0[size]=>119674])错误参数中的值为0.Hmm,错误0表示成功。请暂时注释掉您的@unlink调用,以确保测试的唯一内容是您的上载和发布结果。新上载的文件是否仍不显示在目录中是的,它具有chmod 775权限。我仔细检查了权限。他们是775。是的,我确实希望用户能够直接访问该文件。我认为问题可能出在“移动上传的文件”行。数据库将文件名存储在表中,并在上传后将其显示在表单上。但是当我检查上传文件夹时,文件不存在。