【问题标题】:Cannot upload file: move_uploaded_file(): Unable to move '/tmp/phpYpUvDT' to 'var/www/libreria无法上传文件:move_uploaded_file():无法将“/tmp/phpYpUvDT”移动到“var/www/libreria”
【发布时间】:2020-05-15 23:36:03
【问题描述】:

我已经在 SO 和网络上进行了广泛的检查,但我无法解决这个问题,我感觉卡住了。

这是我用来显示图书文件上传按钮的 PHP 代码(非常原始):

    $partpath = "var/www/libreria/lib-folder/";

 if (isset($_POST['upload'])){
    $file = $_FILES['file'];
    $fileName = $_FILES['file']['name'];
    $fileTmpName = $_FILES['file']['tmp_name'];
    $fileSize = $_FILES['file']['size'];
    $fileError = $_FILES['file']['error'];
    $fileType = $_FILES['file']['type'];


    $fileExt = explode('.', $fileName);
    $fileActualExt = strtolower(end($fileExt));

    $allowed = array('epub', 'mobi', 'pdf');

    if (in_array($fileActualExt, $allowed)){
        if ($fileError === 0) {
            if ($fileSize < 100000000) {
                $fileDestination = $partpath.$fileName;
                move_uploaded_file($fileTmpName, $fileDestination);
                echo "Upload completato <br><br>";
            } else {
                echo "File too big <br>";
            }
        } else {
            echo "Error with file: error code ".$fileError." <br>";
        }
    } else {
        echo "You cannot upload this <br>";
    }

}

我不断收到错误:

Warning: move_uploaded_file(var/www/libreria/lib-folder/Mongoose for Application Development.pdf): failed to open stream: No such file or directory in /var/www/libreria/lib-folder/index.php on line 42

Warning: move_uploaded_file(): Unable to move '/tmp/phpg36Ubt' to 'var/www/libreria/lib-folder/Mongoose for Application Development.pdf' in /var/www/libreria/lib-folder/index.php on line 42

我在 Ubuntu localhost 上运行 apache 服务器,并且我已经尝试执行以下操作:

  • 设置root傻瓜www/var权限为777和755;
  • 为我自己和 www-data 设置文件夹的所有权;

老实说,我不知道该检查什么或做什么,如果有人能给我提示我做错了什么,我将不胜感激。

感谢任何愿意花一分钟阅读和回答的人:)

【问题讨论】:

  • 只是一个猜测,但您的来源似乎不存在:警告:move_uploaded_file(var/www/libreria/lib-folder/Mongoose for Application Development.pdf):无法打开流:没有这样文件或目录。似乎 / 缺失,就在 var 之前 :)
  • @corax228 伙计,谢谢。我想这就是为什么他们告诉你不要熬夜和编码直到很晚......

标签: php file-upload


【解决方案1】:

只是一个猜测,但您的来源似乎不存在:警告:move_uploaded_file(var/www/libreria/lib-folder/Mongoose for Application Development.pdf):无法打开流:没有这样的文件或目录。似乎 / 缺失,就在 var 之前 :)

【讨论】:

  • 这是你应得的接受的答案,因为当我的不工作时成为我的眼睛:)
【解决方案2】:

上传的文件似乎有一个包含空格字符的文件名。在调用 move_uploaded_file 之前,尝试将 $filename 中的所有空格替换为“_”。

【讨论】:

  • 谢谢你的建议,但原来是路径问题,从上面的回复:)
  • 非常好。我建议 corax228 将其添加为答案,以便可以接受!
猜你喜欢
  • 2013-03-29
  • 2014-01-28
  • 2013-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-08
  • 2011-06-28
相关资源
最近更新 更多