Php 如何解决;“文件不存在或不可读”;在laravel中,图像已上载到文件夹中

Php 如何解决;“文件不存在或不可读”;在laravel中,图像已上载到文件夹中,php,html,laravel,Php,Html,Laravel,我在尝试上载文件时遇到此错误,但文件正在上载,因为我可以在目录中找到它!但是它没有继续,而是抛出了这个错误,我一直在使用这个脚本,直到Laravel6.0,我不知道为什么! 谢谢 这是我的Html代码 <div class="custom-file"> <input type="file" class="custom-file-input form-control " id="customFileLang" name="photo" > <label

我在尝试上载文件时遇到此错误,但文件正在上载,因为我可以在目录中找到它!但是它没有继续,而是抛出了这个错误,我一直在使用这个脚本,直到
Laravel6.0
,我不知道为什么! 谢谢

这是我的Html代码

<div class="custom-file">
   <input type="file" class="custom-file-input form-control  " id="customFileLang" name="photo" >
   <label class="custom-file-label" for="customFileLang">Choose Picture </label>
</div>
@error("photo")
  <p style="color:red;" class="mx-4">{{ $message }}</p>
@enderror

                  ```

选择图片
@错误(“照片”)

{{{$message}

@恩德罗 ```
С检查调用
$validator->fails()
是否发生一次


在我的例子中,在我的控制器操作中,在选中删除文件后,第一次调用
$validator->fails()
。第二次调用找不到此文件。

如果文件已成功上载,则问题出在其他地方,但不幸的是,此错误表示非常混乱,不是实际错误。
实际错误发生在将数据插入数据库的地方,在您的情况下,是这样一行:

DB::table('post')->insert($data); // the case in this question
在我的例子中,有一行我想在数据库中插入一个博客:

Blog::create($data); // my case
为了找出真正的错误是什么,您必须使用try-and-catch

try {
  DB::table('post')->insert($data); // for my case : Blog::create($data);
} catch (\Exception $e) {
  dd($e);
}
当您转储并死亡
$e
时,您将看到实际错误:


对我来说,在我的例子中,实际的错误是:“字段‘author_type’没有默认值”,但由于一些未知原因,当您在表单中上载数据时,laravel 6.0显示“文件不存在或不可读错误”。

如果其他人遇到此错误,尝试检查你的php.ini…确保你的上传文件大小和你的帖子大小一样大。我有1000米的贴子最大尺寸,但只有100米的上传最大尺寸。上传会持续很长时间,然后抛出上面的错误(除了文件名为“”,没有上传任何文件)。运行PHP的Web服务器有权将数据存储在
/tmp
-文件夹中吗?是的,因为在另一个项目中,我让它工作@请给出您的html代码also@TanvirAhmed,我添加了它们。
try {
  DB::table('post')->insert($data); // for my case : Blog::create($data);
} catch (\Exception $e) {
  dd($e);
}