一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

PHP如何實現(xiàn)文件上傳

 quasiceo 2016-01-20

1.表單部分 
允許用戶上傳文件,在HTML表單的聲明中要加上一個上傳的屬性: 
enctype = 'multipart/form-data' 
表單的method必須是POST 
表單選項MAX_FILE_SIZE隱藏域用于限制上傳文件大小,它必須放在文件表單元素前面,單位為字節(jié)。 
如: 

復(fù)制代碼代碼如下:

<form enctype='multipart/form-data' id='aa' name='aaa' method='post' action='xxx.php'> 
<input type='hidden' name='MAX_FILE_SIZE' value='2621114' /> 
<input name='upload_file' type='file' /> 
</form> 


2.處理上傳文件 
上傳時,PHP收到關(guān)于該文件的信息數(shù)組,這些信息可以在$_FILES這個超級全局數(shù)組中找到。 
如:如果表單中的文件輸入框名字為upload_file,那么關(guān)于該文件的所有信息都包含在數(shù)組$_FILES['upload_file']里面。 
如:客戶上傳了一個“aaa.jpg”的圖片數(shù)組值如下: 
name "p5pp.jpg" 上傳時文件的名字 
type “image/jpeg" 文件類型 
tmp_name "/tmp/phpjksdf" 服務(wù)器端的臨時文件名 
error 上傳錯誤的返回值 
size 2045 文件實際大小 

上面數(shù)組里面的error會返回不同的常量值,如下: 
UPLOAD_ERR_OK 沒有錯誤發(fā)生,文件上傳成功 
UPLOAD_ERR_INI_SIZE 文件大小超過了PHP.INI中upload_max_filesize選項限制的值 
UPLOAD_ERR_FORM_SIZE 上傳文件的大小超過了HTML表單中MAX_FILE_SIZE選項值??稍诔绦蛑袡z查表單$FILES ['up_file']['size']來處理 
UPLOAD_ERR_PARTIAL 文件只有部分被上傳 
UPLOAD_ERR_NO_FILE 用戶沒有提供任何文件上傳 
上傳后處理的具體例子: 

復(fù)制代碼代碼如下:

if(!move_uploaded_file($_FILES['f']['tmp_name'],"uploads/".$_FILES['f']['name'].".jpg")){ 
echo "error"; 


函數(shù): 
move_uploaded_file 移動上傳的臨時文件到指定的目錄下 
例子: 
move_uploaded_file('臨時文件名','指定文件路徑') 

is_uploaded_file 判斷是否是通過http Post上傳的文件 
例子: 

復(fù)制代碼代碼如下:

if(!is_uploaded_file($_FILES['f']['tmp_name'])){ 
echo '非法'; 



3.相關(guān)參數(shù) 

PHP上傳設(shè)計到的php.ini中的參數(shù): 
file_uploads 是否允許上傳文件,默認ON 

upload_tmp_dir 上傳文件防止的臨時目錄,未指定則使用系統(tǒng)默認位置 

upload_max_filesize 允許上傳文件的大小的最大值,默認為2M 

post_max_size 控制采用POST方法進行一次表單提交中PHP所能接受的最大數(shù)據(jù)量,如果希望用PHP文件上傳,則此值要改為比upload_max_filesize要大 

max_input_time 以秒為單位對通過POST/GET/PUT方式接受數(shù)據(jù)時間進行限制。 

memory_limit 為了避免正在運行的腳本大量使用系統(tǒng)內(nèi)存,PHP允許定義內(nèi)存使用限額。通過設(shè)置此參數(shù)來制定單個腳本程序可以使用的最大內(nèi)存容量,應(yīng)適當(dāng)大于post_max_size值 

max_execution_time 用來設(shè)置在強制終止腳本前PHP等待腳本執(zhí)行完畢的時間,單位秒。次選項可限制死循環(huán)腳本,但當(dāng)存在一個長時間的合法活動時(如:上傳大文件),這項功能也會導(dǎo)致操作失敗。這樣情況下必須考慮將此變量增加。 

4.考慮多文件上傳 
可以利用$_FILES數(shù)組就可以輕松實現(xiàn)多文件上傳。$_FILES數(shù)組可以獲取客戶端表單里面所有的file域內(nèi)容,從而獲得所有在同一表單上傳的文件。 

5.突破上傳的內(nèi)存限制 

方法一: 
修改php.ini中memory_limit值,改為更大,如 64M 
方法二: 
使用Apache Rewrite方法,動態(tài)修改memory_limit的值。首先建立一個.htaccess文件,保存在上傳文件程序的 當(dāng)前目錄即可.代碼如下: 
php_value memory_limit 100M 
php_value post_max_size 30M 
php_value upload_max_filesize 30M 
php_value max_execution_time 300 
php_value max_input_tim 300 
php_value display_errors On

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲欧洲一区二区中文字幕| 欧美在线视频一区观看| 亚洲伊人久久精品国产| 丝袜美女诱惑在线观看| 加勒比日本欧美在线观看| 办公室丝袜高跟秘书国产| 欧美大胆美女a级视频| 日本道播放一区二区三区| 欧美av人人妻av人人爽蜜桃| 夫妻性生活动态图视频| 午夜精品在线视频一区| 国产户外勾引精品露出一区| 国产亚洲欧美日韩精品一区| 国产精品夜色一区二区三区不卡| 亚洲天堂有码中文字幕视频| 在线视频三区日本精品| 少妇高潮呻吟浪语91| 国产欧洲亚洲日产一区二区| 日韩免费午夜福利视频| 亚洲av熟女一区二区三区蜜桃| 欧美午夜视频免费观看| 亚洲一区二区精品免费| 国产乱久久亚洲国产精品| 日本男人女人干逼视频| 麻豆91成人国产在线观看| 欧美国产日产综合精品| 色鬼综合久久鬼色88| 五月天丁香婷婷狠狠爱| 五月天综合网五月天综合网| 日本人妻的诱惑在线观看| 99精品国产自在现线观看| 亚洲中文字幕亲近伦片| 日韩精品一区二区毛片| 欧美不卡一区二区在线视频| 日本不卡一本二本三区| 五月天丁香婷婷一区二区| 狠狠做五月深爱婷婷综合| 免费在线播放不卡视频| 不卡中文字幕在线免费看| 色婷婷国产精品视频一区二区保健| 青青操日老女人的穴穴|