| 在php中上專檔案大小限制的問題如何解決呢?主要是修改設定檔php.ini中的內容,來突破php上傳檔案大小的限制。 從 PHP 4.2.0 開始,PHP 將隨檔案資訊數組一起返回一個對應的錯誤碼。該代碼可以在檔案上傳時產生的檔案數組中的 ['error'] 欄位中被找到,也就是 $_FILES['userfile']['error']。UPLOAD_ERR_INI_SIZE值:1; 上傳的檔案超過了 php.ini 中 upload_max_filesize 選項限制的值。UPLOAD_ERR_FORM_SIZE值:2; 上傳檔案的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。 注意事項 對 MAX_FILE_SIZE 設定的值,不能大於 ini 設定中 upload_max_filesize 選項設定的值。其預設值為 2M 位元組。 如果記憶體限制設定被啟用,您可能需要將 memory_limit 設定的更大些,請確認 memory_limit 的設定足夠的大。 如果 max_execution_time 設定的值太小,指令碼啟動並執行時間可能會超過該設定。因此,也請保證 max_execution_time 足夠的大。 注: max_execution_time 僅僅隻影響指令碼本身運行地時間。任何其它花費在指令碼運行之外的時間,諸如用函數 system() 對系統的調用、sleep() 函數的使用、資料庫查詢、檔案上傳等,在計算指令碼啟動並執行最大時間時都不包括在內。 如果 post_max_size 設定的值太小,則較大的檔案會無法被上傳。因此,請保證 post_max_size 的值足夠的大。 不使您操作的檔案有效化,可能意味著使用者能夠訪問其它目錄下的敏感資訊。 請注意 CERN httpd 似乎會丟棄它從用戶端獲得的 content-type mime 頭資訊中第一個空格後所有的內容,基於這一點,CERN httpd 不支援檔案上傳特性。 鑒於檔案路徑的表示方法有很多種,我們無法確保用使用各種外語的檔案名稱(尤其是包含空格的)能夠被正確的處理。 摘自PHP手冊 其實這個東西很容易繞過的,先用JS確認一下比較保險 關於上傳檔案的限制 系統: redhat 9+Apache 2.0 Filter+php 4.2.2 不知道怎麼回事,上傳大於512k的檔案的時候就會顯示找不到伺服器。而且是沒有經過上傳過程,直接就找不到伺服器了。 apache日誌,發現上傳時,錯誤資訊:[Wed May 12 17:05:10 2004] [error] [client 10.133.9.4] Requested content-length of 2025891 is larger than the configured limit of 524288 應當是對上傳檔案的限制吧,可是在httpd.conf 裡面找不到這個設定。 php.ini 裡面到是有,可以都已經設定成 8M 了。 另外error_log 裡面還有些錯誤資訊不知道是什麼原因造成的[Wed May 12 17:04:58 2004] [notice] Digest: generating secret for digest authentication ...[Wed May 12 17:04:58 2004] [notice] Digest: done[Wed May 12 17:04:59 2004] [info] (32)Broken pipe: core_output_filter: writing data to the network[Wed May 12 17:04:59 2004] [notice] Apache/2.0.40 (Red Hat Linux) configured -- resuming normal operations ; Maximum allowed size for uploaded files.upload_max_filesize = 2M 一般PHP上傳的限制設定在php.ini裡面了,注意更改後要重新啟動才會生效!Originally posted by cnteacher at 2004-5-12 05:43 PM:524288這個設定在另外一個檔案裡面! /etc/httpd/conf.d/ 下的php.confphp.ini裡逾時時間30秒太短了,改長點,比如300秒。 就是這些了,在php中解決了上傳檔案大小限制。 |