Laravel 5.2 干预图像 500 服务器错误
Laravel 5.2 Intervention Image 500 Server Error
当我上传大图片 (4.2 MB) 时,干预图片抛出 500 错误...
private function resizeImage($path, $imgName){
$sizes = getimagesize($path.$imgName);
if($sizes[0] > $sizes[1]){
ImageManagerStatic::make($path.$imgName)->fit(920,474)->insert(public_path() . "/uploads/applications/watermark.png",'bottom-right', 30, 30)->save($path."1_".$imgName);
}else{
ImageManagerStatic::make($path.$imgName)->heighten(474)->insert(public_path() . "/uploads/applications/watermark.png",'bottom-right', 30, 30)->save($path."1_".$imgName);
}
ImageManagerStatic::make($path.$imgName)->fit(440,226)->save($path."2_".$imgName);
File::delete($path.$imgName);
}
它适用于较小的文件。 upload_max_filesize=10M
。当我评论这个函数时它起作用了:/
编辑您的php.ini:
upload_max_filesize = 40M
post_max_size = 40M
也许您的 post_max_size 小于 4MB。然后重启服务器。
我遇到了同样的问题,增加 upload_max_filesize
还不够。
我还增加了 memory_limit to 256M
并重新启动了服务器。然后图像与干预一起工作。
[以上更改在 php.ini 文件中]
您可能需要根据您使用的文件容量更改 upload_max_filesize
和 memory_limit
。
我在 Laravel 5.1 和干预图像库中遇到了同样的问题。
在我的例子中,问题来自行 Image::make($file) 而不是上传部分。
我尝试更改以下值:
- upload_max_filesize 从 2M 到 32M
- post_max_size 从 2M 到 32M
不要更改我收到的错误。
所以我增加:
- memory_limit 到 256M
它解决了我的问题。
我的假设是,即使我的图像大约是 6Mo,图像库也需要大量内存才能使用它。
今天,我在 Laravel 5.5 中遇到了同样的问题,同时使用干预包调整图像大小,代码如下:
Image::make($image_tmp)->save($image_path);
我无法访问服务器中的 php.ini
文件,服务器需要时间进行更新,因此 暂时增加功能本身的内存限制 在我的控制器文件中,例如以下:
在 ImagesController.php 文件中:-
public function addImage(Request $request){
// Temporarily increase memory limit to 256MB
ini_set('memory_limit','256M');
$extension = Input::file('image')->getClientOriginalExtension();
$fileName = rand(111,99999).'.'.$extension;
$image_path = 'images/'.$fileName;
$image_tmp = Input::file('image');
Image::make($image_tmp)->resize(1182, 1506)->save($image_path);
}
希望对以后的人有所帮助!
我尝试了所有解决方案,但我忘记使用图像写入我的文件;这有效。
当我上传大图片 (4.2 MB) 时,干预图片抛出 500 错误...
private function resizeImage($path, $imgName){
$sizes = getimagesize($path.$imgName);
if($sizes[0] > $sizes[1]){
ImageManagerStatic::make($path.$imgName)->fit(920,474)->insert(public_path() . "/uploads/applications/watermark.png",'bottom-right', 30, 30)->save($path."1_".$imgName);
}else{
ImageManagerStatic::make($path.$imgName)->heighten(474)->insert(public_path() . "/uploads/applications/watermark.png",'bottom-right', 30, 30)->save($path."1_".$imgName);
}
ImageManagerStatic::make($path.$imgName)->fit(440,226)->save($path."2_".$imgName);
File::delete($path.$imgName);
}
它适用于较小的文件。 upload_max_filesize=10M
。当我评论这个函数时它起作用了:/
编辑您的php.ini:
upload_max_filesize = 40M
post_max_size = 40M
也许您的 post_max_size 小于 4MB。然后重启服务器。
我遇到了同样的问题,增加 upload_max_filesize
还不够。
我还增加了 memory_limit to 256M
并重新启动了服务器。然后图像与干预一起工作。
[以上更改在 php.ini 文件中]
您可能需要根据您使用的文件容量更改 upload_max_filesize
和 memory_limit
。
我在 Laravel 5.1 和干预图像库中遇到了同样的问题。 在我的例子中,问题来自行 Image::make($file) 而不是上传部分。
我尝试更改以下值:
- upload_max_filesize 从 2M 到 32M
- post_max_size 从 2M 到 32M
不要更改我收到的错误。
所以我增加:
- memory_limit 到 256M
它解决了我的问题。 我的假设是,即使我的图像大约是 6Mo,图像库也需要大量内存才能使用它。
今天,我在 Laravel 5.5 中遇到了同样的问题,同时使用干预包调整图像大小,代码如下:
Image::make($image_tmp)->save($image_path);
我无法访问服务器中的 php.ini
文件,服务器需要时间进行更新,因此 暂时增加功能本身的内存限制 在我的控制器文件中,例如以下:
在 ImagesController.php 文件中:-
public function addImage(Request $request){
// Temporarily increase memory limit to 256MB
ini_set('memory_limit','256M');
$extension = Input::file('image')->getClientOriginalExtension();
$fileName = rand(111,99999).'.'.$extension;
$image_path = 'images/'.$fileName;
$image_tmp = Input::file('image');
Image::make($image_tmp)->resize(1182, 1506)->save($image_path);
}
希望对以后的人有所帮助!
我尝试了所有解决方案,但我忘记使用图像写入我的文件;这有效。