[英]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.