如何解码并保存作为base64字符串数组发送到服务器目录的多个图像?

时间:2017-05-31 12:30:25

标签: laravel-5

我正在为Android应用程序编写web服务。从移动设备我发送的图像需要解码并保存为jpg / jpeg / png(任何一种)格式。

将要发送的数据将是一个base64数组,我需要在后端处理它并将其保存到服务器目录中以供将来参考。

要保存图片,我的代码就像这样。 (这只是一种测试方法)

public function testing(Request $request){
    $i=0;
    foreach($request['images'] as $name)
    {
        $i +=1;

        $imagename= 'Image'.$i.'.jpeg';
        $destinationPath = public_path('images');
        $path = 'images/'.$imagename;
        $res = file_put_contents($path, base64_decode($name));
    }
}

此代码将创建一个带有jpeg扩展名的图像,但是当我尝试打开它时只是给我这个: enter image description here

我想我错过了什么。

[以上代码只是从app上传正确文件的演示。]

1 个答案:

答案 0 :(得分:0)

抱歉打扰。我通过添加一些代码来修复它。

 $i=0;
    foreach($request['images'] as $name)
    {

        list($type, $name) = explode(';', $name);
        list(, $name)      = explode(',', $name);
        $data = base64_decode($name);
        $i +=1;

        $imagename= 'Image'.$i.'.jpeg';
        $destinationPath = public_path('images');
        $path = 'images/'.$imagename;
        $res = file_put_contents($path, $data);

        /*$saveInlistingimages = DB::insert('INSERT INTO listingimages (Listing, Image) values (?, ?)', [$lastId, $path]);*/

    }