Php Laravel-某些具有相同mime的文件的mimetype验证失败
我有两个Php Laravel-某些具有相同mime的文件的mimetype验证失败,php,laravel,laravel-5.6,php-7.2,Php,Laravel,Laravel 5.6,Php 7.2,我有两个mp3文件,比如说file1.mp3和file2.mp3。当我上载文件1时,它已成功上载,但与由于错误的mimetype验证而失败的文件2不同。用于验证输入的字符串为: $rules['arquivos.*'] = 'required|mimetypes:image/jpeg,image/png,image/gif,video/webm,video/mp4,audio/mpeg'; 表单的html代码为: {!! Form::open(['route' => 'posts.sto
mp3
文件,比如说file1.mp3
和file2.mp3
。当我上载文件1时,它已成功上载,但与由于错误的mimetype验证而失败的文件2不同。用于验证输入的字符串为:
$rules['arquivos.*'] = 'required|mimetypes:image/jpeg,image/png,image/gif,video/webm,video/mp4,audio/mpeg';
表单的html代码为:
{!! Form::open(['route' => 'posts.store', 'enctype' => 'multipart/form-data', 'class'=>'form-post']) !!}
<input class="novo-post-form-item form-post-file-input" name="arquivos[]" type="file" onchange="addNovoInputFile(this, {{ $configuracaos->num_max_arq_post }})">
// rest of the form
那么有人知道这次会出什么问题吗?或者它是laravel验证部分中的一个bug
编辑:我还发现一些图像文件也出现了这种情况。你能运行
php-r“echo mime\u content\u type(“~/Music/file2.mp3”);
在php中运行mime类型测试吗?它们都输出音频/mpeg
奇怪的是,你可能需要连接一个调试器来查看它的失败之处。如果您还没有使用xdebug,我强烈建议您使用它。当我为file2
调用validate($request,$rules)
函数时,它会失败。该函数是由Laravelth预定义的,它不够具体,这就是我推荐调试器的原因。
fabio@fabiopc:~$ mimetype ~/Music/file1.mp3
/home/fabio/Music/file1.mp3: audio/mpeg
fabio@fabiopc:~$ mimetype ~/Music/file2.mp3
/home/fabio/Music/file2.mp3: audio/mpeg
fabio@fabiopc:~$ file ~/Music/file1.mp3
/home/fabio/Music/file1.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 64 kbps, 44.1 kHz, Stereo
fabio@fabiopc:~$ file ~/Music/file2.mp3
/home/fabio/Music/file2.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 64 kbps, 44.1 kHz, Stereo