将图像流保存到laravel

时间:2019-06-20 04:31:26

标签: php laravel laravel-5 png

在我的Laravel控制器中,我尝试获取一串png图像数据,然后将其另存为png并使用put进行存储:

$image_string = $request->get('image_string', false);
$filename = 'temp_image';

if ($image_string) {
    $resource = imagecreatefromstring($image_string);
    Log::debug("Storing image");
    if ($resource !== false) {
        Storage::put('public/' . $filename . '.png', imagepng($resource));
    } else {
        Log::error("Failed to get resource from string");
    }
}

如果仅分解imagecreatefromstring($image_string)imagepng($resource)部分,则会按预期创建文件。但是图像在Storage::put中的某个位置已损坏或丢失,因为尽管存在具有正确文件名和扩展名的图像,但它没有数据,并且在查看时显示为黑框。

处理图像存储例程是否需要其他方式?

2 个答案:

答案 0 :(得分:0)

我认为问题在于您不能以这种方式更改每种图像的图像扩展名。

检查以下PHP图像处理库:http://image.intervention.io/getting_started/introduction

您可以轻松地将其集成到Laravel中,并且有一个API可以转换不同格式的图像:http://image.intervention.io/api/encode

答案 1 :(得分:0)

感谢@Stefano Cortese和@sykez-解决方案融合了这两种想法。

11223 112312 4123123 6423 123124 563456 123123 35734562 34526 3452 346
123412 51341 12341 473567 11234 45746 578957 23523 3452 32435 3 32452346 
23453 23462 234532 54245 345 4563 6573456 23452345 367 4523 45 2345234