php调整大小类失败,在dreamhost上使用更大的图像文件大小

时间:2017-04-20 19:55:22

标签: php jquery ajax image

这是一个奇怪的错误,我正在遇到并伸出手来看看是否有人可以帮我确定为什么会发生这种情况。

基本上,我有一个使用jquery ajax上传图像的表单,然后使用调整大小的类http://jarrodoberto.com/articles/2011/09/image-resizing-made-easy-with-php来裁剪图像。我注意到超过1mb的图像脚本失败,没有错误消息。此外,这只发生在dreamhost上。在我的主人gatorserver上一切正常。

对我来说奇怪的是,尺寸较小的图像似乎工作正常。所有的php ini设置都远远超出限制,所以我知道这不是问题,两台服务器都在运行php 5.6。并有错误报告。

我还是在没有ajax的情况下直接测试了这个脚本,它对图像大小超过1mb无效。

include('resize-class.php');
$resizeObj = new resize('photo.jpg');
$resizeObj -> resizeImage(250,250,'auto');
$resizeObj -> saveImage('photo-test.jpg', 100);

所以这显然是脚本的内容以及dreamhost的设置方式。

为什么会发生这种情况?

经过进一步测试,我发现了这个错误 允许的内存大小为94371840字节 同样的测试只会在dreamhost和只有某些jpg文件上产生此错误,而不会在hostgator上产生。所以这与dreamhost和某些jpg文件有关。

1 个答案:

答案 0 :(得分:0)

解决方案是将位于/home/username/.php/5.6/phprc中的dreamhost phprc 文件修改为类似于以下内容的文件

upload_max_filesize = 100M
post_max_size = 105M
max_execution_time = 500
max_input_time = 250
memory_limit = 256M

https://help.dreamhost.com/hc/en-us/articles/214894037-How-do-I-create-a-phprc-file-via-FTP-

需要注意的一个重要事项:更改后的PHP设置大约需要10分钟才能生效,因为我认为它们是cgi进程的一部分,而这些进程经常重启。

内存限制似乎导致错误。

不确定为什么这个resize-class.php脚本需要那么多内存来调整1mb照片的大小。