我已经创建了一个可以上传图像以及标题,说明等的应用程序。但是,我在要上传的某些图像中遇到问题,它返回错误(“图像源不可读”),如图所示下方:
这是我的代码:
$image = $request->file('image');
// $image = Input::file('image'); // already tried this one still same problem
$orginal_filename = $image->getClientOriginalName();
$ext = $image->getClientOriginalExtension();
$fileName = md5(microtime() . $orginal_filename) . '.' . $ext;
$img = Image::make($image->getRealPath());
$img->stream();
$img->resize(1200, null, function ($constraint) {
$constraint->aspectRatio();
});
Storage::disk('storage_dir')->put($dir . $fileName, $img, 'public');
已经尝试了以下解决方案:
但仍然存在“无法读取图像源”错误。
注意:仅在某些图像中发生错误。 (我也曾尝试将图像(w / c产生错误)移动到另一个目录,但仍然发生错误)。
非常感谢您的帮助!
答案 0 :(得分:1)
您可以尝试运行我的代码
if ($request->file('photo')->isValid()) {
$avatar = $request->file('photo');
$filename = time() . '.' . $avatar->getClientOriginalExtension();
Image::make($avatar)->resize(300, 300)->save( public_path('/uploads/avatars/' . $filename) );
}
/ uploads / avatars / 是我的目录
答案 1 :(得分:0)
抱歉打扰大家!似乎没有意识到php post_max_size
和php upload_max_file_size
都是我的错。由于我试图上传大于8MB的图像,因此我只将post_max_size
>比当前图像文件的大小增加,但没有将upload_max_file_size
的原因增加2(表示为4MB)。 / p>
感谢btw的帮助和建议!
答案 2 :(得分:0)
如果问题出现在Laravel 5.7项目中,并且您将图片存储在存储文件夹中,则可以解决该问题,将其输入到终端中:
php artisan storage:link
(如果您已经从github og bitbucket克隆了项目,则会出现问题)
答案 3 :(得分:0)
替换
otherProps
与
$resize = Image::make('storage/app/public/'.$user->image)->resize(300,300);
给出存储完整路径即可解决问题。
答案 4 :(得分:0)
如果您在服务器上遇到此错误,则需要确保将所有图像推送到服务器。由于服务器无法找到或读取图像/图像,您正面临此错误。
-> 确保图片/图片已上传
-> 使图像/图像可读。