php 上傳大文件主要涉及配置upload_max_filesize和post_max_size兩個選項。


轉自: http://blog.sina.com.cn/s/blog_6c739e63010137ui.html

 

php手冊上傳錯誤資料:http://php.net/manual/zh/features.file-upload.errors.php

http://php.net/upload-max-filesize

Maximum number of files that can be uploaded via a single request

max_file_uploads = 20  :單個請求時,允許上傳的最大文件數 ;

Maximum allowed size for uploaded files.

upload_max_filesize = 64M,允許上傳你的最大文件大小 ; 

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.

post_max_size = 3M, 表單允許上傳的最大文件大小,官方解釋:http://php.net/post-max-size

 

今天在做上傳的時候出現一個非常怪的問題,有時候表單提交可以獲取到值,有時候就獲取不到了,連普通的字段都獲取不到了,苦思冥想還沒解決,最后問了師 傅,師傅看了說挺奇怪的,然后問我upload_max_filesize的值改了嗎,我說改了啊,師傅也解決不了了。過了一會師傅問 post_max_size改了嗎,我說那個和上傳沒關系吧,師傅沒理我,我還是照着自己的想法繼續測試,弄了半天還是不行,最后試了師傅提的意見,成功 了,原來上傳是和post_max_size有關系的。

 
 
總結:php.ini配置文件中的默認文件上傳大小為2M, 默認upload_max_filesize = 2M,即文件上傳的大小為2M,如果你想上傳超過8M的文件,比如20M,你必須設定upload_max_filesize = 20M。但是光設置upload_max_filesize = 20M還是無法實現大文件的上傳功能,你必須修改php.ini配置文件中的post_max_size選項,其代表允許POST的數據最大字節長度,默 認為8M。如果POST數據超出限制,那么$_POST和$_FILES將會為空。要上傳大文件,你必須設定該選項值大於 upload_max_filesize指令的值,我一般設定upload_max_filesize和post_max_size值相等。另外如果啟用 了內存限制,那么該值應當小於memory_limit選項的值。

 文件上傳的其他注意事項

  在上傳大文件時,你會有上傳速度慢的感覺,當超過一定的時間,會報腳本執行超過30秒的錯誤,這是因為在php.ini配置文件中max_execution_time配置選項在作怪,其表示每個腳本最大允許執行時間(秒),0 表示沒有限制。你可以適當調整max_execution_time的值,不推薦設定為0。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM