php - 在视图中显示图像 Laravel 6
问题描述
我无法在视图中的标签 img 中显示我的图像。我可以将上传的图像保存在storage->app->public->books 中,并将图像名称也保存在我的数据库中。但是在我运行php artisan storage:link以在public->storage中访问我的文件之后,但是无论我使用asset() 还是 url() 方法,我都无法在 img 标签中显示我的图像,只是 alt="" 属性,有人知道我做错了什么吗?
这是我的控制器商店()。
public function store(Request $request)
{
// Handle File Upload
if($request->hasFile('book_image')){
// Get filename with the extension
$filenameWithExt = $request->file('book_image')->getClientOriginalName();
// Get just filename
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
// Get just ext
$extension = $request->file('book_image')->getClientOriginalExtension();
// Filename to store
$fileNameToStore= $filename.'_'.time().'.'.$extension;
// Upload Image
$path = $request->file('book_image')->storeAs('books', $fileNameToStore);
} else {
$fileNameToStore = 'noimage.png';
}
//save in database
$itens = \App\Book::create([
'book_name' => mb_strtolower($request->book_name),
'author_name' => mb_strtolower($request->author_name),
'publishing_name' => mb_strtolower($request->publishing_name),
'description' => $request->description,
'release_date' => $request->release_date,
'category' => mb_strtolower($request->category),
'book_image' => $fileNameToStore
]);
flash('Livro criado com sucesso !')->success();
return redirect()->route('admin.books.index');
}
这是我要显示的html。
@foreach($books as $book)
<tr>
<td><input type="checkbox" class="checkthis" /></td>
<td>
<img style="width: 80px;height: 80px" src="{{ url('books/{$book->book_image}') }}" alt="{{$book->book_image}}">
</td>
<td>{{$book->book_name}}</td>
<td>{{$book->author_name}}</td>
<td>{{$book->publishing_name}}</td>
<td>{{$book->release_date}}</td>
<td>
</tr>
还有我的 config->filesystems.php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
],
],
解决方案
您需要通过 src 如下。
src="{{ url('books/'.$book->book_image) }}"
作为存储文件夹
src="{{ asset('storage/books/'.$book->book_image) }}"
推荐阅读
- wpf - 流文档组合框上的 VB.NET WPF 样式更改生成触发成功操作的异常?
- javascript - PHP实时更改变量
- python - 对字典中的整数值执行操作
- javascript - React JS - 渲染后缺少分号
- android - 如何让自定义视图同时调用它的 touchEvent 和它的父视图?
- tailwind-css - 我正在尝试使用跨度“绘制”一个圆圈,有时可以,有时不能
- python - 将最大值标签添加到散点图
- python - 熊猫如果一列中存在值,则填充不同列中的值
- ruby-on-rails - 是否可以从模型动作中获取变量到控制器?
- node.js - ffmpeg --help, node child_process spawn trigger stderr