我的php程序不会将上传的图像移动到目录(ubuntu)

我是Php开始的。

我一直试图将上传的图片移至目录几个小时而没有成功。 我已经阅读了关于这个问题的其他问题,但是我一直无法解决这个问题:

1)我已经检查过目录是否存在(见下面的输出);

2)看起来目录不可写,但我不仅试图将图像保存在一种系统目录中,而且还保存在我的计算机的简单目录中。

3)图像似乎上传正确。

4)我已经使用过“sudo chmod -R 775 / home / daniel / NetBeansProjects / NewPhpProject / photos”,但这不应该是问题,因为这不是系统目录!

我不知道发生了什么。

丹尼尔

看到我的代码如下:

uploadImage.php

<html>
    <body>
        <h2> Upload your photo. </h2>
        <form action="moveImage.php" method="post"
              enctype="multipart/form-data">
            <label for="file">Filename:</label>
            <input type="file" name="file" id="file"><br>
            <input type="submit" name="submit" value="Submit">
        </form>
    </body>
</html>

movingImage.php

    <?php
    if ($_FILES["file"]["error"] > 0) {
        echo "Error: " . $_FILES["file"]["error"] . "<br>";
    } else {

        //$upload_dir = $_SERVER['DOCUMENT_ROOT'] . "/photos/";
        //$upload_dir = dirname(__FILE__) . "/photos/";
        $upload_dir ="/home/daniel/NetBeansProjects/NewPhpProject". "/photos/";
        echo "upload_dir: " . $upload_dir . "<br>";
        if (file_exists($upload_dir)) {
            if (is_writable($upload_dir)) {
                $target = $upload_dir; //"dirname(__FILE__)" . "photos/";
                $target = $target . basename($_FILES['file']['name']);
                $moved = move_uploaded_file($_FILES['file']['name'], "$target");
            } else {
                echo 'Upload directory is not writable<br>';
            }
        } else {
            echo 'Upload directory does not exist.<br>';
        }
        echo $target . "<br>";
    //  echo dirname(__FILE__)."<br>";
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?> 

输出:

upload_dir:/ home / daniel / NetBeansProjects / NewPhpProject / photos /

上传目录不可写入

上传:FotoCaju.jpeg

类型:image / jpeg

大小:0.666015625 kB

存储在:/ tmp / phpmTJWMi


问题可能是,沿着/home/daniel/NetBeansProjects/NewPhpProject/photos/的路径的每个目录也必须由Apache写入。

由于更改主目录的权限通常不是一个好主意,因此您应该在Apache访问的某个地方创建一个符号链接,该链接位于public_html之外(如/var/www ),该目录指向您的目标目录,该目录应该具有正确的Apache用户的权限。


您需要更改/home/daniel/NetBeansProjects/NewPhpProject/photos/的目录权限。 为此,您将使用chmod命令。

$: chmod +w /home/daniel/NetBeansProjects/NewPhpProject/photos/


PHP.net网站评论is_writable:

Note: The results of this function are cached. See clearstatcache() for more details.

尝试一下。 在更改文件夹的权限之前,结果可能会与结果一起缓存。

链接地址: http://www.djcxy.com/p/78075.html

上一篇: My php program is not moving uploaded image to a directory (ubuntu)

下一篇: Add external libraries to CMakeList.txt c++