3

我正在尝试通过 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;
      }
4

4 回答 4

0

您的目标文件夹是否具有适当的权限?http://en.wikipedia.org/wiki/Chmod写入的目录通常需要 775:使用 PHP/Apache 上传文件夹的正确权限是什么?

另外,您是否希望用户可以直接访问该文件?如果不是,您应该考虑将文件写入 Web 根目录上方的文件夹。

于 2013-04-29T16:09:20.807 回答
0

如果$_FILES['new_file']['error'] == 0那么上传不是问题,但调用move_uploaded_file()是。您可能对尝试将文件移动到的目录拥有不正确的权限。

于 2013-04-29T16:06:10.007 回答
0

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

于 2013-04-29T16:08:14.403 回答
0

对我来说,我碰巧在本地使​​用php 的upload_max_filesize 下的文件进行测试,同时使用upload_max_filesize 上的文件进行远程测试。有关更多信息,请参阅https://stackoverflow.com/a/30359278/3325776

于 2019-08-28T05:31:07.713 回答