首页 > 解决方案 > Laravel如何检查文件是否成功上传?

问题描述

我想知道我是否使用 ValidationController 来验证文件上传并在我的 UploadController 中有这个:

$file = $request->validated();

在此之前:

if ($request->hasFile('file') {
  $file = $request->file('file');
  if ($file->isValid()) {
    [...]
  }
}

甚至有必要做$request->hasFile('file')-block吗?

在 ValidationController 中,我已经设置了文件是必需的并且必须是 pdf 的验证规则,因此hasFile('file')可能是多余的。如果文件没有被上传,那么我会被验证器重定向。

我知道该$file->isValid()部分检查文件是否已成功上传,因此即使在验证文件之后也可能需要这样做。

标签: phplaravelvalidationfile-upload

解决方案


甚至有必要做$request->hasFile('file')-block吗?

主要问题是该逻辑是否$request没有名为.file

如果没有hasFile调用,则缺少文件的请求file将在该行上抛出错误(“调用成员函数 isValid() on null”)$file->isValid(),这$file将是 null。


推荐阅读