2010-02-18 230 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”解决了我的问题。