当试图导出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
中,然后检索它并将其发送给函数。点击这里查看解决方案