无法检测到ReaderType或WriterType.确保向文件名传递有效的扩展名或传递显式类型 &



当试图导出excel时,我得到这个错误,我使用的是Laravel 9和maatwebsite 3.1

我也有这个问题。当我在Laravel 9中尝试使用这个包导入Excel时,也发生过这种情况。在本地主机(Windows 10)工作正常,但当部署它时,我得到了错误。

问题是我试图传入临时文件路径:

$items = (new ItemsImport)->toCollection($request->file('file')->getPathName())[0];

现在,我直接传递文件。我不会再得到那个错误了。

$items = (new ItemsImport)->toCollection($request->file('file'))[0];

我在Linux机器上部署。似乎Linux和Windows对时态Laravel文件的处理方式不同。为了测试它,我这样做:

dd($request->file('file')->getPathName());

在两个os和我得到了不同的结果。在Windows:

"C:UsersMyUserAppDataLocalTempphp5DF9.tmp"

在Linux:

"myRoute/tmp/phps27wPC"
如前所述,他们似乎对待路径不同。在Linux中,路径没有扩展名,因此程序无法猜测阅读器的类型。

更多信息在这里。

不要忘记包含enctype="multipart/form-data">在表单行中,因为输入文件需要。

我认为您需要将文件存储在temp中,然后检索它并将其发送给函数。点击这里查看解决方案

最新更新