我正在为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扩展名的图像,但是当我尝试打开它时只是给我这个:
我想我错过了什么。
[以上代码只是从app上传正确文件的演示。]
答案 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]);*/
}