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

时间:2013-04-29 16:02:52

标签: php mysql apache file upload

我正在尝试通过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 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您确定要上传的文件夹是否有权将文件写入其中?如果没有,请使用chmod 0777并进行测试。

答案 2 :(得分:0)

您的目标文件夹是否具有适当的权限? http://en.wikipedia.org/wiki/Chmod目录写入通常需要775:What are the proper permissions for an upload folder with PHP/Apache?

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

答案 3 :(得分:0)

对我来说,我碰巧正在本地测试php的upload_max_filesize下的一个文件,而远程测试一个通过upload_max_filesize的文件。有关更多信息,请参见https://stackoverflow.com/a/30359278/3325776