【问题标题】:Image source not readable with Laravel Image Intervention使用 Laravel Image Intervention 无法读取图像源
【发布时间】:2017-12-08 07:01:15
【问题描述】:

所以这对我来说已经有一段时间了,但它似乎不起作用,我有一个表单,用户可以在其中提交新的个人资料图片:

<form enctype="multipart/form-data" action="/profile" method="POST">
    <input type="file" name="avatar">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    <input type="submit" class="pull-right btn btn-sm btn-primary">
</form>

当按钮被点击时,它们被重定向到激活以下功能的控制器:

public function update_avatar(Request $request)
{
    $avatar = $request->avatar;
    $extension = File::extension($avatar);
    $filename = time() . '.' . $extension;
    Image::make($avatar)->resize(350, 350)->save( public_path('/uploads/avatars/' . $filename ) );

    $user = Sentinel::getUser();
    $user->profile->avatar = $filename;
    $user->save();
}

但无论我做什么控制器总是返回消息

(1/1) NotReadableException

图片来源不可读

有谁知道我该如何解决这个问题?

编辑:我已将 Image::make 行更改为以下内容:

$image = Image::make($avatar->getRealPath())->resize(350, 350)->save( public_path('/uploads/avatars/' . $filename ) );

但现在我遇到了一个新错误:

(1/1) 致命错误异常

在字符串上调用成员函数 getRealPath()

【问题讨论】:

    标签: php html image laravel intervention


    【解决方案1】:

    试试这个:

    Image::make($avatar->getRealPath())->resize(350, 350)->save( public_path('/uploads/avatars/' . $filename ) );
    

    编辑: 使用它来检索您的 UploadedFile

    $avatar = $request->file('avatar');
    

    编辑#2: 对于扩展,请改用:

    $extension = $avatar->getClientOriginalExtension();
    

    注意:不要忘记在您的验证规则中只授权图像文件。

    Intead,您可以对扩展进行“硬编码”,Intervention 能够保存并转换为指定的图像格式(jpg、png ..)

    【讨论】:

    • 它摆脱了第一个错误,但现在它显示:(1/1) FatalErrorException Call to a member function getRealPath() on string
    • 您必须更改检索上传文件的方式。我已经编辑了我的帖子。
    • 当我包含你的 Edited 方法时,我在 dd'ing 头像时得到一个数据数组,但现在我得到一个错误,即不支持编码格式:不支持编码格式 (tmp)。 表示它获取的是 tmp 文件而不是 .jpg 文件
    • 我修复了它,我包含了函数 getClientOriginalName();但它仍然给我“字符串”错误消息
    • 我又编辑了,继续使用getRealPath(),因为干预需要上传文件的'tmp_name'See docs
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多