簡體   English   中英

我的php程序未將上傳的圖片移動到目錄(ubuntu)

[英]My php program is not moving uploaded image to a directory (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

類型:圖片/ jpeg

大小:0.666015625 kB

存儲在:/ tmp / phpmTJWMi

您需要更改/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.

試試吧。 可能在更改文件夾的權限之前,將結果與結果一起緩存。

問題可能出在/home/daniel/NetBeansProjects/NewPhpProject/photos/上的每個目錄也必須可由Apache寫入。

由於更改主目錄的權限通常不是一個好主意,因此您應該在Apache可以訪問的某個位置進行符號鏈接 ,該鏈接位於public_html (例如/var/www )之外,指向您的目標目錄,該目錄應具有正確的目錄Apache用戶的權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM