php上傳圖片500錯誤
『壹』 500 錯誤提示什麼意思
出現500錯誤的原因是很多的,一般來說,如果程序出錯,那麼在瀏覽器內會返回給用戶一個友好的錯誤提示,統一稱之為伺服器500錯誤。 解決的方法就是您必須在http中能夠正確的獲得錯誤信息,方法為:請打開瀏覽器,選擇工具,internet選項,高級,在高級中的瀏覽項目裡面有一個「顯示http友好錯誤提示」的復選框,請取消該復選框,這樣您可以獲得正確的錯誤提示。 在獲得正確的錯誤提示之後,您就可以根據該錯誤提示檢查您具體的出錯原因了
『貳』 php+swfupload 上傳視頻失敗,報500錯誤,怎麼配置上傳大小
看看路徑是否正確(正反斜杠)。配置php.ini
如何配置php.ini實現PHP文件上傳功能。其中涉及到php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等選項,這些選項是文件上傳成敗的關鍵。我們以php.5.3.5的Windows版本為例說明。
php.ini中文件上傳功能配置選項說明
用文本工具(推薦EditPlus)打開php.ini 配置文件,查找 File Uploads ,在這個區域有以下3個選項:
file_uploads = On
是否允許HTTP文件上傳。默認值為On允許HTTP文件上傳,此選項不能設置為Off。
upload_tmp_dir =
文件上傳的臨時存放目錄。如果沒指定則PHP會使用系統默認的臨時目錄。該選項默認為空,此選項在手動配置PHP運行環境時,也容易遺忘,如果不配置這個選項,文件上傳功能就無法實現,你必須給這個選項賦值,比如upload_tmp_dir = "d:/fileuploadtmp" ,代表在D盤目錄下有一個fileuploadtmp目錄,並且給這目錄讀寫許可權。
upload_max_filesize = 2M
上傳文件的最大尺寸。這個選項默認值為2M,即文件上傳的大小為2M,如果你想上傳一個50M的文件,你必須設定 upload_max_filesize = 50M。
但是僅設置upload_max_filesize = 50M 還是無法實現大文件的上傳功能,我們還必須修改php.ini文件中的 post_max_size 選項。
繼續在 php.ini 中查找 Data Handling ,在這個區域有1個選項:
post_max_size = 8M
指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認為8M。如果POST數據超出限制,那麼$_POST和$_FILES將會為空。
要上傳大文件,你必須設定該選項值大於upload_max_filesize選項的值,例如你設置了upload_max_filesize = 50M ,這里可以把post_max_size = 100M。
另外如果啟用了內存限制,那麼該值應當小於memory_limit 選項的值。
繼續在 php.ini 中查找 Resource Limits ,在這個區域有3個選項:
max_execution_time = 30
每個PHP頁面運行的最大時間值(單位秒),默認30秒。當我們上傳一個較大的文件,例如50M的文件,很可能要幾分鍾才能上傳完,但php默認頁面最久執行時間為30秒,超過30秒,該腳本就停止執行,這就導致出現無法打開網頁的情況。因此我們可以把值設置的較大些,如 max_execution_time = 600。 如果設置為0,則表示無時間限制。
max_input_time = 60
每個PHP腳本解析請求數據所用的時間(單位秒),默認60秒。當我們上傳大文件時,可以將這個值設置的較大些。 如果設置為0,則表示無時間限制。
memory_limit = 128M
這個選項用來設置單個PHP腳本所能申請到的最大內存空間。這有助於防止寫得不好的腳本消耗光伺服器上的可用內存。如果不需要任何內存上的限制將其設為 -1。
php5.2.0以前的版本默認8M; php.5.2.0版本默認為16M。php 5.2.0之後的版本默認為 128M;
php.ini 配置上傳文件功能示例
假設要上傳一個50M的大文件。配置 php.ini 如下:
file_uploads = On
upload_tmp_dir = "d:/fileuploadtmp"
upload_max_filesize = 50M
post_max_size = 100M
max_execution_time = 600
max_input_time = 600
memory_limit = 128M
提示:需要保持 memory_limit > post_max_size > upload_max_filesize
ini_get()獲取php.ini設置值
ini_set()設置php.ini
『叄』 上傳文件時出現http error 500錯誤
首先,上傳大小的限制有兩個,一個叫post_max_size,一個叫upload_max_filesize。
然後,你看它提示的是HTTP Error 500。
五百錯誤的原因比較多,但一般來說,都是伺服器代碼的錯誤而導致其內部錯誤的。
那麼據此推想,可能的原因有下:
沒有配置允許上傳文件;
沒有配置上傳文件的臨時目錄;
臨時目錄或上傳目錄路徑有系統不能識別的字元(如漢字等);
臨時目錄或上傳目標無寫入許可權;
上傳文件有系統不能識別的字元(如漢字等);
本地上傳文件的目錄路徑有系統不能識別的字元;
……
目前只能想到這些了,不過你可以直接找到上傳文件的那一段代碼,逐行寫上測試錯誤的代碼,就可以找到哪裡出錯了,進而找到根本原因。
『肆』 為什麽PHP錯誤代碼是500
1.伺服器資源超載
如果你沒對網站文件做過什麼更改的話,最有可能的是同伺服器的資源超載:即同一時間內處理器有太多的進程需要處理的時候,會出現500錯誤。藉助SSH,可以在命令行中輸入以下命令查看:
ps faux
ps faux |grep username
如果你查到某個進程消耗過多資源,可以用kill命令強制關閉這個進程,只需輸入該進程的進程號(Pid):
kill -9 pid
2.文件許可權設置錯誤
500錯誤還有可能是對文件設置了不正確的許可權:
後台目錄和文件的許可權默認應該是755,而圖片,文字等html文件應該是644,所以如果在剛剛上傳文件後出現500錯誤,應該主要檢查文件許可權設置。
可以使用FTP軟體選中所有文件,然後批量修改文件許可權。
3 .htaccess文件寫入錯誤的代碼
在使用某些wordpress SEO插件的時候,插件會改寫.htacess文件,如果語法錯誤的話就有可能造成500錯誤!
在.htaccess文件中,可能因為添入了一些與源文件沖突的代碼。所以為了檢測到錯誤語句,最好的方法是為語句添加註釋來逐條驗證。因為注釋之後,語句就不再起作用。
逐條添加「#」在語句前面,如
DirectoryIndex default.html
AddType application/x-httpd-php5 php
你可以添加#到該命令前,從而實現注釋效果:
DirectoryIndex default.html
#AddType application/x-httpd-php5 php
這個方法可以迅速定位錯誤的命令,如果你找不到錯誤的段落,可以嘗試把所有的命令全部添上注釋然後反過來逐條刪除#檢查錯誤!
判斷出錯誤語句之後,可以刪掉#恢復正常!
『伍』 錯誤代碼500是什麼意思
三種判斷依據和相應的解決方案:
伺服器資源超載:如果你沒對網站文件做過什麼更改的話,最有可能的是同伺服器的資源超載:即同一時間內處理器有太多的進程需要處理的時候,會出現500錯誤。藉助SSH,可以在命令行中輸入以下命令查看:
ps faux
ps faux |grep username
如果你查到某個進程消耗過多資源,可以用kill命令強制關閉這個進程,只需輸入該進程的進程號(Pid):
kill -9 pid
2.文件許可權設置錯誤
500錯誤還有可能是對文件設置了不正確的許可權:
後台目錄和文件的許可權默認應該是755,而圖片,文字等html文件應該是644,所以如果在剛剛上傳文件後出現500錯誤,應該主要檢查文件許可權設置。
可以使用FTP軟體選中所有文件,然後批量修改文件許可權。
3 .htaccess文件寫入錯誤的代碼
在使用某些wordpress SEO插件的時候,插件會改寫.htacess文件,如果語法錯誤的話就有可能造成500錯誤!
在.htaccess文件中,可能因為添入了一些與源文件沖突的代碼。所以為了檢測到錯誤語句,最好的方法是為語句添加註釋來逐條驗證。因為注釋之後,語句就不再起作用。
逐條添加「#」在語句前面,如
DirectoryIndex default.html
AddType application/x-httpd-php5 php
你可以添加#到該命令前,從而實現注釋效果:
DirectoryIndex default.html
#AddType application/x-httpd-php5 php
這個方法可以迅速定位錯誤的命令,如果你找不到錯誤的段落,可以嘗試把所有的命令全部添上注釋然後反過來逐條刪除#檢查錯誤!
判斷出錯誤語句之後,可以刪掉#恢復正常!