gpt4 book ai didi

php - 在 Laravel 中验证 CSV 文件

转载 作者:行者123 更新时间:2023-12-03 19:36:46 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Laravel MIME issue while validating .csv file

(3 个回答)


去年关闭。




我正在尝试上传一个 CSV 文件,我想在执行其他任何操作之前对其进行验证。所以我在 FormRequest 中使用以下代码:

public function rules()
{
return [
'csvFile' => 'required|file|mimes:csv'
];
}

我用于上传文件的表格是:
<form action="{{ route('uploadFile') }}" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group">
<label for="fileToUpload">CSV File to upload</label>
<input name="csvFile" type="file" class="form-control" id="fileToUpload" placeholder="Select file">
</div>
<button type="submit" class="btn btn-primary">Upload</button>
</form>

问题是它不起作用。尝试使用 getMimeType() 检查我的 test.csv 文件的 MIME 类型,我得到:
"text/plain"

但是如果我使用 getClientMimeType() 我得到:
"text/csv"

从我读到的是:

The client mime type (getClientMimeType()) is extracted from the request from which the file was uploaded, so it should not be considered as a safe value.

For a trusted mime type, use getMimeType() instead (which guesses the mime type based on the file content).



显然,我应该使用 getMimeType(),但它不起作用(至少在大多数情况下)。

我试图通过这样做来模仿这一点:
end(explode('.', $file->getClientOriginalName()));

这将返回 'csv' 结果,但感觉就像一个黑客!此外,它很容易被愚弄。

有没有办法安全地知道文件是否为 .csv 类型?

谢谢!

最佳答案

您可以使用 required|mimes:csv,txt用于验证 csv 文件。

关于php - 在 Laravel 中验证 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47910663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com