Apache – 406不可接受的PHP问题

我正在debugging一个flash网站,请求一个名为upload.php的php文件将一些图像上传到服务器。

这个问题,我debugging它与萤火虫对该页面的要求是抛出一个406不可接受的状态代码,并没有保存图像。

发布数据:

替代文字http://img.zgserver.com/php/rum_post_info.JPG

该网站在登台服务器上运行良好,但在生产服务器上,图像上传失败。 我只能假设改变到Apacheconfiguration/ PHP必须完成,但我不知道该怎么做。

upload.php代码:

替代文字http://img.zgserver.com/php/rum_upload_code.JPG

任何帮助或指导将受到欢迎,在此先感谢帮助。

att Sherlack

406 Not Acceptable错误意味着服务器想要发送一个响应,这个响应的类型没有在客户端发送的accept头文件中(在本例中是Flash); 它与您的文件无法上传无关。

你的代码看起来很好,所以这可能是你的PHP配置的问题。 确保upload_max_filesize文件中的upload_max_filesizepost_max_size已经被充分配置。

除了其他答案(post_max_size它可能是,因此我的问题的图像大小), 这个博客条目概述了一个406与Flash文件上传,显然是由mod_security引起的不寻常的原因。

这很可能是你的post_max_size的一个问题。

在php.ini中将以下内容更改为符合您需要的数字:

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

如果这不起作用,那么您将需要在Apache中的.htaccess文件中做类似的更改。

问题是Suhosin PHP强化模块。 一些变量值的长度限制被超过。 被编辑的文件是/etc/php.d/suhosin.ini,并且记录到/ var / log /中。

文件由我的主机管理员编辑后,问题已解决。

感谢所有的支持!

就我而言,只需要改变标题(如Johannes Gorset所说)即可:

 "Accept":"text/html" 

禁用mod_security不是一个选项。

我正在发送一个多部分/表单,并收到这个恼人的错误。 改变“接受头”解决了​​我的问题。