$_FILES[“file”][“error”]:如果上傳文件有錯誤,則顯示錯誤代碼
UPLOAD_ERR_OK 值:0; 沒有錯誤發生,文件上傳成功。 UPLOAD_ERR_INI_SIZE 值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。 UPLOAD_ERR_FORM_SIZE 值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。(我們可以在form表單中指定input type=’hidden’ name=’MAX_FILE_SIZE’ html' target='_blank'>value=’附件的最大字節數’) UPLOAD_ERR_PARTIAL 值:3; 文件只有部分被上傳。 UPLOAD_ERR_NO_FILE 值:4; 沒有文件被上傳。備注:對于 IE,識別 jpg 文件的類型必須是 pjpeg,對于 FireFox,必須是 jpeg。
文件被上傳結束后,默認地被存儲在了臨時目錄中,這時必須將它從臨時目錄中刪除或移動到其它地方,如果沒有,則會被刪除。也就是不管是否上傳成功,腳本執行完后臨時目錄里的文件肯定會被刪除。所以在刪除之前要用PHP的 copy()或者move_upload_file() 函數將它復制或者移動到其它位置,此時,才算完成了上傳文件過程。
用form上傳文件時,一定要加上屬性內容 enctype=”multipart/form-data”,否則用$_FILES[filename]獲取文件信息時會報異常。
bool move_uploaded_file ( string $filename , string $destination )
參數:
filename:上傳的文件的文件名。
destination:移動文件到這個位置
返回值:
成功時返回 TRUE。
如果 filename 不是合法的上傳文件,不會出現任何操作,move_uploaded_file() 將返回 FALSE。
如果 filename 是合法的上傳文件,但出于某些原因無法移動,不會出現任何操作,move_uploaded_file() 將返回 FALSE。此外還會發出一條警告。
注:<form>中的enctype屬性的可選值為↓↓↓↓
值 | 描述 |
---|---|
1、上傳文件的表單1.html
<html><head><title>上傳文件</title></head><body><form action='1.php' method='post' enctype='multipart/form-data'>選擇文件:<input type='file' name='imgfile' /><br /><input type='submit' name='submit' value='提交' /></form></body></html>
2、處理文件的腳本1.php
<?php if($_FILES['imgfile']['error']==0){ #限制上傳的文件類型和大小 if((($_FILES['imgfile']['type']=='image/gif')|| ($_FILES['imgfile']['type']=='image/jpeg')|| ($_FILES['imgfile']['type']=='image/pjpeg'))&& ($_FILES['imgfile']['size'])>=30720){ #注意:此時文件夾upload必須已經存在,否則會報錯! if(file_exists('upload/'.$_FILES['imgfile']['name'])) echo '文件已存在,請不要重復上傳。'; else move_uploaded_file($_FILES['imgfile']['tmp_name'],'upload/'.$_FILES['imgfile']['name']); echo '文件上傳成功!'; }else{ echo '不是jpeg或gif的圖片格式,或者文件小于30k!請重新上傳。'; }}?>
六、致謝
PHP文件上傳; PHP:move_uploaded_file-Manual; php中$_FILES變量的用法; PHP上傳檔案,透過 PHP $_FILES 陣列輕鬆上傳檔案; php上傳常見文件類型和$_FILES[“file”][“type”].
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答