在Laravel 9中上传后,如何在数据库中返回文件图像名称?

发布于 2025-02-10 15:36:34 字数 916 浏览 1 评论 0原文

图像上传正载,它移至所需的文件夹,但是路径名没有返回到我的数据库中,它保持NULL

帖子控制器

if($request->hasFile('image')) {
        $fileName = $request->file('image');
        $file_name = $fileName->getClientOriginalName();
        $formFields['image'] = $request->file('image')->store('img','public');
    }

Posts::create([
        'title' => $request->post('title'),
        'sub_title' => $request->post('sub_title'),
        'tags' => $request->post('tags'),
        'content' => $request->post('content'),
        'featured' => ($request->has('featured')) ? true : false,
    ]);

映像上传输入输入

<div class="mb-2">
 <label for="image" class="mb-1">Image</label>
  <input type="file" class="w-100" name="image">
   @error('image')
    <p class="mt-1 text-danger">{{ $message }}</p>
   @enderror
</div>

The image uploads fine, it moves to the required folder, but the path name is not being returned into my database, it stays null

Posts Controller

if($request->hasFile('image')) {
        $fileName = $request->file('image');
        $file_name = $fileName->getClientOriginalName();
        $formFields['image'] = $request->file('image')->store('img','public');
    }

Posts::create([
        'title' => $request->post('title'),
        'sub_title' => $request->post('sub_title'),
        'tags' => $request->post('tags'),
        'content' => $request->post('content'),
        'featured' => ($request->has('featured')) ? true : false,
    ]);

Image upload input

<div class="mb-2">
 <label for="image" class="mb-1">Image</label>
  <input type="file" class="w-100" name="image">
   @error('image')
    <p class="mt-1 text-danger">{{ $message }}</p>
   @enderror
</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

水晶透心 2025-02-17 15:36:34

您必须在表中添加文件名字段,文件将移动到所需文件夹,但是之后,您必须将文件名分配在邮表中的提交表中:

Posts::create([
    'title' => $request->post('title'),
    'sub_title' => $request->post('sub_title'),
    'tags' => $request->post('tags'),
    'content' => $request->post('content'),
    'featured' => ($request->has('featured')) ? true : false,
    'filename' => $file_name   // add this line
]);

You must add filename field in your table, the file moves to the required folder but after that you must assign the filename in a filed in Posts table like this :

Posts::create([
    'title' => $request->post('title'),
    'sub_title' => $request->post('sub_title'),
    'tags' => $request->post('tags'),
    'content' => $request->post('content'),
    'featured' => ($request->has('featured')) ? true : false,
    'filename' => $file_name   // add this line
]);
秋意浓 2025-02-17 15:36:34

查看此时间戳的代码。请注意,他将图像从$ request添加到他的$ formfields数组,这是验证的$请求字段,然后再通过<代码> $ formfields 数组到在对象上创建方法。您需要复制该过程。

$formFields = [
    'title' => $request->post('title'),
    'sub_title' => $request->post('sub_title'),
    'tags' => $request->post('tags'),
    'content' => $request->post('content'),
    'featured' => ($request->has('featured')) ? true : false,
];

if ($request->hasFile('image')) {
    $formFields['image'] = $request->file('image')->store('img','public');
}

Posts::create($formFields);

旁注,我省略了$请求输入验证,但是您需要在$ request输入上执行验证。永远不要相信输入。

Take a look at the code used at this timestamp. Notice that he is adding the image from the $request to his $formFields array which is an array of validated $request fields before passing the $formFields array to the create method on the object. You need to replicate that process.

$formFields = [
    'title' => $request->post('title'),
    'sub_title' => $request->post('sub_title'),
    'tags' => $request->post('tags'),
    'content' => $request->post('content'),
    'featured' => ($request->has('featured')) ? true : false,
];

if ($request->hasFile('image')) {
    $formFields['image'] = $request->file('image')->store('img','public');
}

Posts::create($formFields);

Side note, I have omitted $request input validation but you'll want to perform validation on the $request inputs. Never trust input.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文