Laravel-excel: 无法检测到 ReaderType 或 WriterType

创建于 2019-05-20  ·  18评论  ·  资料来源: Maatwebsite/Laravel-Excel

我在 web 服务器上的 excel 文件导入上遇到了这个问题。 但这在本地服务器上运行良好。

Maatwebsite\Excel\Exceptions\NoTypeDetectedException
无法检测到 ReaderType 或 WriterType。 确保将有效的扩展名传递给文件名或传递显式类型。

请帮助解决此问题。

more information needed

最有用的评论

作为补充:

如果没有任何效果。 您应该验证您的 HTML 表单enctype属性

像这样: enctype="multipart/form-data"

或者

像这样: <form action="/action" method="post" enctype="multipart/form-data">

您必须包含此编码类型,否则将导致以下错误:

No ReaderType or WriterType could be detected. Make sure you either pass a valid extension to the filename or pass an explicit type

所有18条评论

感谢您提交票证。 很遗憾,您提供的信息不完整。 我们需要知道您使用哪个版本以及如何重现它。 请包括代码示例。 在我们拿起它之前,请检查(https://github.com/Maatwebsite/Laravel-Excel/blob/3.1/.github/ISSUE_TEMPLATE.md)并添加缺失的信息。 为了使处理这张票更容易,请务必检查(https://laravel-excel.maatwebsite.nl/3.1/getting-started/contributing.html)并仔细检查您是否填写了问题模板正确。 这将使我们能够更有效地取票。 正确遵循指南的问题将优先于其他问题。

我认为异常信息很清楚。 确保它有一个扩展,或者是明确的并传递一个作家/读者类型。

错误已解决。 我发送了错误的文件路径来导入。
谢谢你的帮助。

很高兴听到您的问题已得到解决。 感谢您使用 Laravel Excel!

错误已解决。 我发送了错误的文件路径来导入。
谢谢你的帮助。

我也面临同样的错误,你能告诉你在哪里提到了文件路径。 因为我使用 getRealPath() 来获取上传文件并直接使用 Excel::import

错误已解决。 我发送了错误的文件路径来导入。
谢谢你的帮助。

我也面临同样的错误,你能告诉你在哪里提到了文件路径。 因为我使用 getRealPath() 来获取上传文件并直接使用 Excel::import

谢谢..我解决了这个问题,就像你提到的那样

谁能帮我解决这个问题`无法检测到 ReaderType 或 WriterType。 确保您将有效的扩展名传递给文件名或传递显式类型。
' 在 heroku 上进行部署后出现此错误

谁能帮我解决这个问题`无法检测到 ReaderType 或 WriterType。 确保您将有效的扩展名传递给文件名或传递显式类型。
' 在 heroku 上进行部署后出现此错误

请创建一个填写问题模板的新工单。 我们需要问题模板才能为您提供帮助,并且在打开新问题时自动为您提供,请不要删除问题模板的内容。

谁能帮助我如何上传 utf-8 csv 文件。 我面临这样的错误:Maatwebsite \ Excel \ Exceptions \ NoTypeDetectedException
无法检测到 ReaderType 或 WriterType。 确保将有效的扩展名传递给文件名或传递显式类型。

我也面临同样的错误,你能告诉你在哪里提到了文件路径。 因为我使用 getRealPath() 来获取上传文件并直接使用 Excel::import

那行不通,真实路径没有扩展名,因此我们无法猜测阅读器类型。 显式传递上传的文件实例或阅读器类型

问题是 getRealPath()
我在这里找到了解决方案:

https://stackoverflow.com/a/57106453/12226621

代替
$path = $request->file('mcafile')->getRealPath();

将其存储到 temp 中,获取该路径,并将其发送到导入函数

$path1 = $request->file('mcafile')->store('temp'); 
$path=storage_path('app').'/'.$path1;  
$data = \Excel::import(new UsersImport,$path);

您可以只传递上传的文件: \Excel::import(new UsersImport, $request->file('mcafile'))

如果您在 Cent OS 上,它会存储没有扩展名的临时文件。 所以只需重命名一个临时文件并添加一个tmp扩展名。

我的代码如下所示:

$tmpfname = request()->file('userfile')->getPathName();
rename($tmpfname, $tmpfname .= '.tmp');

作为补充:

如果没有任何效果。 您应该验证您的 HTML 表单enctype属性

像这样: enctype="multipart/form-data"

或者

像这样: <form action="/action" method="post" enctype="multipart/form-data">

您必须包含此编码类型,否则将导致以下错误:

No ReaderType or WriterType could be detected. Make sure you either pass a valid extension to the filename or pass an explicit type

Maatwebsite\Excel\Exceptions\NoTypeDetectedException

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

这是我的控制器:

{
        Excel::import(new MedicineImport(Auth::user()->id), request()->file('select_file'));

        return redirect('subscriber/medicine/imp')->with('success', 'All good!');
    }

这是我的表格:

<form method="get" enctype="multipart/form-data" action="{{ url('subscriber/medicine/imp/impEx') }}">
    {{ csrf_field() }}

<label>Select File for Upload</label>
        <input type="file" name="select_file" />
        <input type="submit" name="upload" class="btn btn-primary" value="Upload">
   </form>

请告诉我为什么它显示此错误并且正在使用 3.1

你好,我在上面有一个问题! 我需要你的帮助。

错误已解决。 我发送了错误的文件路径来导入。
谢谢你的帮助。

你能在这里分享吗? 你做了什么?

此页面是否有帮助?
0 / 5 - 0 等级