簡體   English   中英

無法在PHP中上傳圖片

[英]Can't Upload Image in PHP

我正在按照http://www.w3schools.com/php/php_file_upload.asp提供的代碼上傳圖片。

而不是$ target_dir =“ uploads /”; 我指定的是我要上載圖像的本地系統的路徑。

我在最后收到成功消息,但在指定位置找不到圖像。 有什么我被誤解或丟失的東西嗎?

謝謝 !

如果在linux中運行代碼,則必須在目錄中具有寫許可權。
將權限目錄更改為777

檢查您的文件夾訪問權限。 它必須是755。

這也發生在我身上,只有經過很多測試我才能解決。 我正在使用linux 64,Ubuntu發行版和Vesta管理器。

解釋如下:

move_uploaded_file($文件名,$目標)函數接收兩個參數。

第一個是有效的上傳文件,即它是通過php的HTTP POST方法發送的。

第二個是將移動圖像文件的名稱。 您收到成功,因為$ filename是有效文件, $ destination也是有效名稱。

如果您打印文件的內容,將會有如下內容:

{
    "name": ["name-image.jpg"],
    "type": ["image/jpeg"],
    "tmp_name": ["/home/domain-name/tmp/phpVApV3h"],
    "error": [0],
    "size": [772014]
}

要使用move_uploaded_file()函數,您必須傳遞上面引用的參數。

錯誤類型:

UPLOAD_ERR_OK:0

* UPLOAD_ERR_INI_SIZE:1

* UPLOAD_ERR_FORM_SIZE:2

* UPLOAD_ERR_NO_TMP_DIR:6

* UPLOAD_ERR_CANT_WRITE:7

* UPLOAD_ERR_EXTENSION:8

UPLOAD_ERR_PARTIAL:3

[錯誤模式]:僅傳遞新的圖像名稱

$target = 'new-image-name.jpg';

if(!move_uploaded_file($file['tmp_name'][0], $destination)){
    switch($file['error']){
        case UPLOAD_ERR_INI_SIZE:
            echo "Error related to image size ...";
            break;
        case UPLOAD_ERR_NO_TMP_DIR:
            echo "The temp directory was not found ...";
            break;
        case UPLOAD_ERR_CANT_WRITE:
            echo "Could not save image to new location ...";
            break;
        case UPLOAD_ERR_EXTENSION:
            echo "Error related to image extension ...";
            break;
        case UPLOAD_ERR_PARTIAL:
            echo "Partial error while uploading image ...";
            break;
        default:
            echo 'An error has occurred!';
     }
}

echo 'The image upload was successful!';

[正確模式]:傳遞鏈接圖像的新名稱及其絕對路徑

$ target = '/home/domainname/public_html/assets/img/new-name-pic.jpg';

if(!move_uploaded_file($file['tmp_name'][0], $destination)){
    switch($file['error']){
        case UPLOAD_ERR_INI_SIZE:
            echo "Error related to image size ...";
            break;
        case UPLOAD_ERR_NO_TMP_DIR:
            echo "The temp directory was not found ...";
            break;
        case UPLOAD_ERR_CANT_WRITE:
            echo "Could not save image to new location ...";
            break;
        case UPLOAD_ERR_EXTENSION:
            echo "Error related to image extension ...";
            break;
        case UPLOAD_ERR_PARTIAL:
            echo "Partial error while uploading image ...";
            break;
        default:
            echo 'An error has occurred!';
     }
}

echo 'The image upload was successful!';

如果使用Windows ,則可以遵循相同的理由,還可以將絕對路徑分配給新的圖像名稱。

這對我有用,希望對您也有幫助。

如果您使用的是wamp或xampp,則如果您在核心php中上載圖像,請嘗試此代碼

“; if(** move_uploaded_file **($ _ FILES ['userfile'] ['tmp_name'],$ uploadfile)){echo“文件有效,並且已成功上傳。\\ n”; } else {echo“可能的文件上傳攻擊!\\ n”; echo'這里有更多調試信息:'; 的print_r($ _ FILES); 打印“”; ?>

暫無
暫無

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

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