[技術] PHP的檔案上傳

Written on 3:36 下午 by Yu Lai

PHP在裝好後預設的檔案上傳只能傳2MB,實在有點不夠用。
所以要修改一下php.ini來達到需求。
以下幾個是要修改的變數:

  • file_uploads
  • upload_max_filesize
  • max_input_time
  • memory_limit
  • max_execution_time
  • post_max_size

以下將分別對各變數詳細說明

upload_max_filesize and post_max_size

一般而言,檔案是採用POST method以'multipart/form-data'的格式從Browser上傳至Web Server。所以除了要加大upload_max_filesize外還需加大post_max_size。這邊要注意的是upload_max_filesize是設定上傳的檔案大小,而post_max_size的大小除了檔案的大小外還需加上其他的field和header data。

memory_limit

因為php engine在處理POST時會將data存於memory中,所以這個變數也需加大才行。

max_execution_time and max_input_time

最後要注意的是這2個timeout的設定,因為傳大檔時所需時間會較久,請參考網路環境來設定這2個值較好。

註:有些Web Server會設定限制Request大小的設定,如Apache的LimitRequestBody,遇到這種情況時也需一併修改加大。

If you enjoyed this post Subscribe to our feed

No Comment

張貼留言