laravel文件上传会引发错误“文件不存在或不可读。”

时间:2019-10-24 12:52:57

标签: php laravel laravel-6

我正在尝试将图像上传到images文件夹。

if ($request->hasFile('pic')) {
            $file = $request->file('pic');
            $file_name = time() . '.' . $file->getClientOriginalExtension();
            $destinationPath = public_path('/images/');
            $file->move($destinationPath, $file_name);
            $model->pic= $file_name;
        }

但是我得到这个错误:

  

“ ./././ php4E16.tmp”文件不存在或不可读。

我正在使用相同的代码上传照片以供其他控制器中的帖子使用,并且工作正常。

我不知道怎么了。

我不是要上传大型图像或其他东西。

尽管已对php.ini进行了编辑以接受大文件。

我尝试过的事情:

  1. 清除cache
  2. 清除config cache
  3. 将Laravel版本从6.3更新为6.4
  4. enctype="multipart/form-data"添加到表单中。

没有任何效果:\

我不确定这里发生了什么,但是我第一次尝试上传它可以,但是现在不起作用了!

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

假设您要将这些文件放在公用文件夹中(即所有人均可访问),请首先执行

php artisan storage:link

然后尝试如下操作:

if ($filesFromRequest = $request->file('files')) {
      foreach ($files as $file) {
            $storedFilePath = $file->store('public/some_files');
            // Your Model Logic Here
        }         
}

如果您需要前端文件的完整链接,请执行以下操作:

echo asset('storage/some_files/file.txt');

答案 1 :(得分:0)

问题出在插入查询中。.

一栏没有赋值。

通过安装laravel软件包laravel-debugar

,我设法看到了错误