PHP實現(xiàn)文件分片上傳的實例代碼
PHP用超級全局變量數(shù)組$_FILES來記錄文件上傳相關(guān)信息的。
1.file_uploads=on/off
是否允許通過http方式上傳文件
2.max_execution_time=30
允許腳本最大執(zhí)行時間,超過這個時間就會報錯
3.memory_limit=50M
設(shè)置腳本可以分配的最大內(nèi)存量,防止失控腳本占用過多內(nèi)存,此指令只有在編譯時設(shè)置了。
--enable-memory-limit標(biāo)志的情況下才生效
4.upload_max_filesize=20M
允許上傳文件的最大大小,此指令必須小于post_max_size
5.upload_tmp_dir
上傳文件臨時存放目錄
6.post_max_size=30M
允許post方式可以接受最大大小
$_FILES['myFile']['name'] 客戶端上次文件的原始名稱。
$_FILES['myFile']['type'] 文件的 MIME 類型,需要瀏覽器提供該信息的支持,例如"image/gif"。
$_FILES['myFile']['size'] 已上傳文件的大小,單位為字節(jié)。
$_FILES['myFile']['tmp_name'] 文件被上傳后在服務(wù)端儲存的臨時文件名,一般是系統(tǒng)默認(rèn)。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函數(shù)設(shè)置是不起作用的。
$_FILES['myFile']['error'] 和該文件上傳相關(guān)的狀態(tài)碼。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的說明:(它們在PHP3.0以后成了常量)
UPLOAD_ERR_OK
值:0; 沒有錯誤發(fā)生,文件上傳成功。
UPLOAD_ERR_INI_SIZE
值:1; 上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值。
UPLOAD_ERR_FORM_SIZE
值:2; 上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。
UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上傳。
UPLOAD_ERR_NO_FILE
值:4; 沒有文件被上傳。
值:5; 上傳文件大小為0.
文件被上傳結(jié)束后,默認(rèn)地被存儲在了臨時目錄中,這時您必須將它從臨時目錄中刪除或移動到其它地方,如果沒有,則會被刪除。
也就是不管是否上傳成功,腳本執(zhí)行完后臨時目錄里的文件肯定會被刪除。
附:修改PHP上傳文件大小限制的方法
1. 一般的文件上傳,除非文件很小。就像一個5M的文件,很可能要超過一分鐘才能上傳完。
但在php中,默認(rèn)的該頁最久執(zhí)行時間為 30 秒.就是說超過30秒,該腳本就停止執(zhí)行.
這就導(dǎo)致出現(xiàn)無法打開網(wǎng)頁的情況,這時我們可以修改 max_execution_time
在php.ini里查找
max_execution_time
默認(rèn)是30秒.改為
max_execution_time = 0
0表示沒有限制
2. 修改 post_max_size 設(shè)定 POST 數(shù)據(jù)所允許的最大大小。此設(shè)定也影響到文件上傳。
php默認(rèn)的post_max_size 為2M.如果 POST 數(shù)據(jù)尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便會為空.
查找 post_max_size .改為
post_max_size = 150M
3. 很多人都會改了第二步,但上傳文件時最大仍然為 8M。
為什么呢.我們還要改一個參數(shù)upload_max_filesize 表示所上傳的文件的最大大小。
查找upload_max_filesize,默認(rèn)為8M改為
upload_max_filesize = 100M
另外要說明的是,post_max_size 大于 upload_max_filesize 為佳.
上傳效果展示:
如果大家對知識點有任何補(bǔ)充可以聯(lián)系小編,感謝大家對腳本之家的支持。
相關(guān)文章
PHP的數(shù)組中提高元素查找與元素去重的效率的技巧解析
這篇文章主要介紹了PHP的數(shù)組中提高元素查找與元素去重的效率的技巧解析,文中對比了相關(guān)方法的執(zhí)行速度來總結(jié)數(shù)組中使元素查找和去重更加高效的辦法,需要的朋友可以參考下2016-03-03學(xué)習(xí)php設(shè)計模式 php實現(xiàn)策略模式(strategy)
這篇文章主要介紹了php設(shè)計模式中的適配器模式,使用php實現(xiàn)適配器模式,感興趣的小伙伴們可以參考一下2015-12-12PHP 通過Socket收發(fā)十六進(jìn)制數(shù)據(jù)的實現(xiàn)代碼
以下是對PHP中通過Socket收發(fā)十六進(jìn)制數(shù)據(jù)的實現(xiàn)代碼進(jìn)行了分析介紹。需要的朋友可以過來參考下2013-08-08PHP iconv()函數(shù)字符編碼轉(zhuǎn)換的問題講解
今天小編就為大家分享一篇關(guān)于PHP iconv()函數(shù)字符編碼轉(zhuǎn)換的問題講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03PHP以指定字段為索引返回數(shù)據(jù)庫所取的數(shù)據(jù)數(shù)組
本文與大家分享幾個使用得PHP編程技巧,有些技巧是在看別人代碼的時候?qū)W來的,有些是自己總結(jié)的,下面為大家介紹下以特定字段為索引,返回數(shù)據(jù)庫取的數(shù)據(jù)數(shù)組,感興趣的朋友可以了解下哈2013-06-06