【发布时间】:2018-11-14 14:33:04
【问题描述】:
为了让您了解我想要做什么,这是我当前的代码
此代码在向特定 URL 发出 post 请求时运行
public function uploadImage(Request $request) {
$request->file = base64_decode(explode(',', $request->file)[1]);
$request->validate([
'file' => 'image|required|mimes:jpg,png',
]);
$image = $request->file('file');
$complete = $image->getClientOriginalName();
$name = pathinfo($complete, PATHINFO_FILENAME);
$extension = $image->getClientOriginalExtension();
$storageName = $name.'_'.time().'.'.$extension;
Storage::disk('public')->put($storageName, File::get($image));
return Storage::disk('public')->path($storageName);
}
在第一行,我试图变得聪明,首先将 base64 解码为一个文件(如果我是正确的?)。
接下来是验证请求中的file参数是否存在、是否为图片、是否为.jpg或.png
(下一行只是将“图像”保存到文件系统)
但验证不会通过,因为file 参数不是图像。所以我的问题是:是否可以将 base64 字符串转换为 Laravel 中的有效图像?如果是,如何实现?
【问题讨论】:
-
看看 PHP 的 GD 库...特别是php.net/manual/en/function.imagecreatefromstring.php