PHP上傳文件是Web開發(fā)中非常常見的操作,系統(tǒng)開發(fā)人員需要經(jīng)常用到上傳文件的功能。其中,上傳文件大小是開發(fā)人員最關(guān)心的問題之一。通常,Web服務(wù)器和PHP默認設(shè)置的上傳文件大小是2MB到8MB之間,這對于小文件上傳是足夠的。但是,如果需要上傳更大的文件,那么這個限制就不太滿足要求了。
為了支持上傳大文件,我們可以通過修改PHP配置文件來增大文件上傳限制。在PHP中通過兩個配置變量來設(shè)置上傳文件大小的限制:
upload_max_filesize = 2M post_max_size = 8M
其中,upload_max_filesize是上傳文件最大字節(jié)數(shù),該值以字節(jié)為單位,最大值是2G。
而post_max_size是POST方法提交的最大字節(jié)數(shù),通常需要比upload_max_filesize大一些。因為POST方法提交時,除了文件內(nèi)容外,還需要提交其他表單數(shù)據(jù),而這些數(shù)據(jù)也會增加字節(jié)數(shù)。
那么,我們需要上傳一個10MB的文件時,上述配置應該如何修改呢?
upload_max_filesize = 10M post_max_size = 12M
上傳大文件還需要注意幾個問題。我們需要在php.ini中設(shè)置file_uploads為On,即允許文件上傳。另外,需要設(shè)置upload_tmp_dir,將臨時上傳的文件保存在指定的目錄下。
file_uploads = On upload_tmp_dir = "/tmp"
若需要支持文件斷點上傳,我們還可以使用第三方的上傳組件——uploadify。uploadify是一款基于jQuery的大文件上傳插件,支持多文件上傳、文件斷點上傳、預覽圖片等功能。使用uploadify前,需要了解了相關(guān)配置參數(shù),如:
uploader: "uploadify.swf", //上傳文件的服務(wù)端程序,例如:upload.php script: "upload.php", //SWFObject的路徑 fileObjName: "file", //文件域名,此處為file fileSizeLimit: "20MB", //文件總大小 fileTypeExts: "*.jpg;*.gif;*.png", //允許上傳的文件類型 onUploadError: uploadifyError //上傳失敗處理函數(shù)
以上就是關(guān)于PHP上傳大小的一些基本知識,最大文件上傳大小的限制可以通過修改PHP配置文件來解決。若需要上傳大文件,還需要注意是否需要使用第三方上傳組件。開發(fā)人員需要根據(jù)實際應用場景來選擇上傳文件的大小和上傳方式。