2010-02-18 58 views
2

我正在調試一個flash網站,它向請求上傳一個名爲upload.php的php文件以將一些圖像上傳到服務器。Apache - 406不可接受的PHP問題

問題我有調試它與螢火蟲對該頁面的請求是拋出一個406不可接受的狀態代碼,並沒有保存圖像。

發表數據:

alt text http://pixelstg.com/rum_post_info.JPG

本網站運行良好臨時服務器上,但在生產服務器上的圖片上傳的過程失敗。我只能假設改變apache配置/ php必須完成,但我不知道該怎麼做。

upload.php的代碼:

alt text http://pixelstg.com/rum_upload_code.JPG

任何幫助或指導將受到歡迎,在此先感謝您的幫助。

ATT Sherlack

+0

您能否顯示一個會失敗的典型圖像?它有多大? – 2010-02-18 20:00:36

+0

圖像大小約爲50kb - 100kb jpg格式。 – Sherlack 2010-02-18 20:40:14

+0

我正在嘗試下面的解決方案來嘗試它們。將保持聯繫。 再次感謝你們! – Sherlack 2010-02-18 20:43:18

回答

0

問題出在Suhosin PHP強化模塊。一些變量值長度限制已被超出。編輯的文件是/etc/php.d/suhosin.ini,並且記錄到/ var/log /。

文件被我的主機管理員編輯後,問題就解決了。

謝謝大家的支持!

0

這是最有可能與您的post_max_size一個問題。

在php.ini更改以下爲一個數字,符合你的需要:

memory_limit = 0M 
post_max_size = 0M 
upload_max_filesize = 0M 

如果不工作,那麼你將需要在Apache的.htaccess文件做了類似的變化。

+0

我檢查這些價值觀和他們配置如下: memory_limit的= 32M, 的post_max_size = 8M, 的upload_max_filesize = 8M, 但仍然does not工作,並上載返回406個狀態碼。 – Sherlack 2010-02-18 22:17:12

+0

我要試着在.htaccess中進行這些設置,看它是否有效。 – Sherlack 2010-02-18 22:19:24

+0

好吧,我試圖在htaccess文件中設置memory_limit,post_max_size,upload_max_filesize,但沒有奏效。 – Sherlack 2010-02-18 22:33:19

3

A 406 Not Acceptable錯誤表示服務器想要發送的響應的類型未在客戶端發送的accept標頭中列出(在本例中爲Flash);它與您的文件無法上傳無關。

您的代碼看起來很好,所以這可能是您的PHP配置的問題。確保upload_max_filesizepost_max_size已在您的php.ini文件中進行了充分配置。

2

除了其他答案(post_max_size它可能是,因此我的問題的圖像大小),this blog entry概述了406與Flash文件上傳,顯然是由mod_security造成的更罕見的原因。

0

在我的情況下,只需要更改標題(如約翰內斯Gorset說)到:

"Accept":"text/html" 

禁用mod_security的是不是一種選擇。

我正在發送一個多部分/表單並接收這個惱人的錯誤。改變「Accept header」解決了我的問題。