我在上传.rar
或.zip
时因文件扩展名而收到错误消息。这是我的代码的一部分:
$tipo = $_FILES['archivo']['type'];
$ext_permitidas = array('doc','docx','xls','xlsx','zip','rar','ppt','pptx','pdf');
$partes_nombre = explode('.', $nombre);
$extension = end( $partes_nombre );
$ext_correcta = in_array($extension, $ext_permitidas);
$tipo_correcto = preg_match('/^(application\/(msword|x-rar-compressed|zip|pdf)|application\/vnd\.(ms-excel|ms-powerpoint|openxmlformats-officedocument\.(wordprocessingml\.document|spreadsheetml\.sheet|presentationml\.presentation)))$/', $tipo);
if( $ext_correcta && $tipo_correcto){
#do stuff
}else{
echo 'Invalid file <br><a href="../../../login.php">Return</a> ';
echo $tipo;
}
当我上传.zip/.rar
文件时,出现错误,$tipo
为application/octet-stream
。
我发现.zip
的一个解决方案是将octet-stream
代替.zip
和.rar
,但莫名其妙地只适用于.zip
...无论如何,我不要放octet-stream
因为它还包含.exe
个文件。
我怎么能让它运作?
编辑:我的问题与那个问题不同:.rar, .zip files MIME Type我希望上传更多仅.rar
和.zip
的文件扩展名,以及我尝试过的问题哑剧类型:
.rar application/x-rar-compressed, application/octet-stream
.zip application/zip, application/octet-stream
但我在这两个方面都遇到了错误。我也试过了:
application/octet-stream
但它仅适用于.zip
个文件