我正在制作一个网站,您可以在其中通过表单存储文件,然后它会显示在页面上。
这是我要插入的表格:,
<form action="{{ route('post.store') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="bg-grey-lighter pt-15">
<label
class="w-44 flex flex-col items-center px-2 py-3 bg-white-rounded-lg shadow-lg tracking-wide uppercase border border-blue cursor-pointer">
<input type="file" name="thumb" class="hidden">
</label>
</div><br>
这是我用来显示图像的代码:
<img src="{{ asset('/images/posts/' . $post->thumb }}" class="img-post" />
<br>
这是我的PostController:(拇指是数据库中字段的名称)
public function update(Request $request, Post $post, $id)
{
$post = Post::findOrFail($id);
$path = public_path('images/');
$imageName = time(). '.' . $request->thumb->extension();
$post->thumb = $request->thumb->move($path, $imageName);
$request->validate([
'thumb' => 'mimes:jpeg,png,jpg,gif',
]);
$post->update();
return redirect()->back()->with('success', 'updated');
}
在数据库中存储如下:
C:\Users\users name\Documents\laravel\projeto-qbv2\public\images/posts\1700092184.png
在 Laravel 中,图像存储在:
public\images\posts
已经尝试更改功能,img src...
你需要使用laravel文件存储系统。
首先您需要配置存储符号链接。 您可以通过在 artisan CLI 中运行此命令来完成此操作:
php artisan storage:link
您可以在文件系统配置文件中配置其他符号链接。当您运行 storage:link 命令时,将创建每个配置的链接:
'links' => [
public_path('storage') => storage_path('app/public'),
public_path('images') => storage_path('app/images'),
],
之后,您就可以简单地使用存储功能了:
你的 PostController.php 代码将是这样的:
public function update(Request $request, Post $post, $id)
{
$post = Post::findOrFail($id);
$request->validate([
'thumb' => 'mimes:jpeg,png,jpg,gif',
]);
if ($request->hasFile('logo')) {
$path = $request->logo->store('/images');
$post->thumb = $path;
$post->update();
return redirect()->back()->with('success', 'updated');
}
}
这是您应该用来显示图像的代码:
<img src="{{ asset('/storage/' . $post->thumb }}" class="img-post" />
<br>
希望对您有帮助。
有关这方面的更多信息,我推荐 Laravel 文档:https://laravel.com/docs/10.x/filesystem