php上傳檔案大小限制的問題

來源:互聯網
上載者:User
在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中解決了上傳檔案大小限制。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.