【发布时间】:2018-01-11 17:57:20
【问题描述】:
我已经编写了用于存储和显示图像的代码
show.blade.php
<form method="POST" action="{{ url('/user/'.$profile->user_id) }}" enctype="multipart/form-data">
{{ csrf_field() }}
<input type="file" name="avatar" />
<input type="submit" value="Upload" />
</form>
<img src="{{ asset($profile->avatar_path) }}" width="20px" height="20px">
ProfileController.php
public function update(Request $request, Profile $profile)
{
$this->validate($request, [
'avatar' => 'nullable|image',
]);
$profile->fill([
'avatar_path' => request()->file('avatar')->store('avatars', 'public'),
]);
$profile->save();
// auth()->user()->profile()->update([
// 'avatar_path' => request()->file('avatar')->store('avatars', 'public')
// ]);
}
它将路径存储为avatars/XCK6azMSv87qA23YYXemZlPVoSKLN3sor9aUhfhQ.jpeg
当我检查storage/app/public 时,图像实际上存在于avatars/ 文件夹中
在控制台中显示
GET http://localhost:8000/avatars/XCK6azMSv87qA23YYXemZlPVoSKLN3sor9aUhfhQ.jpeg 404 (Not Found)
我还执行了php artisan storage:link 命令静止图像不加载。
【问题讨论】:
-
检查用户对公用文件夹的权限
-
怎么做?
-
你在 Linux 上吗?
-
没有。我在 Windows 10 上
-
你也做了存储和公共的链接吗?如果是这样,您可能只需要在路径名前添加 /storage。所以 www.url.com/storage/avatars/stuff.jpg
标签: php laravel laravel-5 storage