先寫(xiě)好HTML
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <form action="save_img.php" enctype="mult注意<form>的enctype必須為multipart/form-data,這樣才能文件上傳。<input type="hidden" name="MAX_FILE_SIZE" value="100000">指定文件上傳的大小?,F(xiàn)在看一下save_img.php文件if($_FILES['userImg']['error'] > 0) {    echo 'File upload failed, error code = '.$_FILES['userImg']['error'];    exit;}echo "file type: ".$_FILES['userImg']['type'].'<br/>';$path = $_SERVER['DOCUMENT_ROOT'].'/../test/';$newFile = $path.$_FILES['userImg']['name'];if(file_exists($newFile)) {    echo 'file is exist, upload failed;';    exit;}if(is_uploaded_file($_FILES['userImg']['tmp_name'])) {    if(!move_uploaded_file($_FILES['userImg']['tmp_name'], $newFile)) {        echo 'Could not move file to new path! You may not have permission;';        exit;    }} else {    echo 'Failed;';    exit;}PHP代碼中,文件相關(guān)的數(shù)據(jù)保存在$_FILES超級(jí)全局?jǐn)?shù)組中。  對(duì)于HTML中的<input type="file" id="img" name="userImg">,我們可以再PHP中使用$_FILES['userImg']['xxx']來(lái)獲取該文件的信息(xxx自己填寫(xiě))。  1. $_FILES['userImg']['tmp_name']表示文件在web服務(wù)器中的臨時(shí)位置(腳本運(yùn)行結(jié)束時(shí)該文件會(huì)被刪除)。  2. $_FILES['userImg']['name']表示文件的名稱。  3.  $_FILES['userImg']['size']表示文件的字節(jié)大小。  4.  $_FILES['userImg']['type']表示文件的MIME類型。  5.  $_FILES['userImg']['error']表示任何與文件上傳相關(guān)的錯(cuò)誤代碼。  相關(guān)錯(cuò)誤代碼  =>
UPLOAD_ERROR_OK 值為0,表示沒(méi)有發(fā)生錯(cuò)誤。UPLOAD_ERR_INI_SIZE值為1,表示上傳文件大小超出了約定值。文件最大值在php.ini的upload_max_filesize中指定。UPLOAD_ERR_FORM_SIZE值為2,表示上傳文件的大小超過(guò)了HTML表單的MAX_FILE_SIZE所指定的最大值。UPLOAD_ERR_PARTIAL值為3,表示文件只部分上傳。UPLOAD_ERR_NO_FILE值為4,表示沒(méi)有上傳任何文件。UPLOAD_NO_TMP_DIR值為6,表示在php.ini文件中沒(méi)有指定臨時(shí)文件目錄。UPLOAD_ERR_CANT_WRITE值為7,表示將文件寫(xiě)入磁盤失敗
現(xiàn)在繼續(xù)分析php代碼,$_FILES['userImg']['error'] > 0判斷文件是否上傳成功;$_SERVER['DOCUMENT_ROOT']獲得服務(wù)器的根目錄;$newFile = $path.$_FILES['userImg']['name'];給定文件最后存放的指定位置;file_exists($newFile)判斷文件是否已經(jīng)存在; is_uploaded_file($_FILES['userImg']['tmp_name'])判斷該文件是否為上傳文件(有可能惡意上傳的文件會(huì)導(dǎo)致訪問(wèn)不該訪問(wèn)的地方);move_uploaded_file($_FILES['userImg']['tmp_name'], $newFile)將臨時(shí)文件移動(dòng)到指定位置。
注意: linux下,用戶應(yīng)該有訪問(wèn)存放目錄的權(quán)限,可以設(shè)置其為777權(quán)限;
新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注