无法上传文件:move_uploaded_file():无法将'/ tmp / phpYpUvDT'移动到'var / www / libreria

问题描述 投票:0回答:1

我已经在SO和Web上进行了广泛检查,但是我无法对其进行梳理,因此感觉卡住了。

这是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本地主机上运行apache服务器,并且我已经尝试执行以下操作:

  • 将root Foolder www / var设置为777和755的许可;
  • 为我自己和www-data设置文件夹的所有权;

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

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

php file-upload
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.