显示上传的图像适用于Windows,但不适用于Linux

时间:2017-01-30 15:56:03

标签: php laravel

此代码可以正常运行并正确保存图像:

if(request()->file("avatar_upload")) {
    $file = request()->file("avatar_upload");
    $ext = $file->guessClientExtension();
    if($ext == "jpg" || $ext == "jpeg" || $ext == "png"){
        $file->storeAs('public/avatars/' . Auth::user()->id , "avatar.jpg");
    }
}

现在要显示它,我使用它,它适用于Windows但不适用于Linux:

@if(File::exists('/storage/avatars/'.Auth::user()->id))
    <div class="image-upload">
        <label for="avatar_upload">
            <img src="{{asset('/storage/avatars/'.Auth::user()->id)."/avatar.jpg"}}"/>
        </label>
        <input id="avatar_upload" name="avatar_upload" type="file"/>
    </div>
@else
    <div class="image-upload">
        <label for="avatar_upload">
            <img src="/assets/admin/img/noimage.png"/>
        </label>
        <input id="avatar_upload" name="avatar_upload" type="file"/>
    </div>
@endif

这总是在Linux中显示noimage.png,同时检索并显示图像Windows。

知道为什么吗?

1 个答案:

答案 0 :(得分:1)

如果您已经为&#34; addTodoFunction&#34;创建了文件夹权限并得到同样的问题:

我认为您的代码需要更新如下:

storage/avatars

希望这对你有用!