繁体   English   中英

CodeIgniter:错误的上传文件mime类型

[英]CodeIgniter: wrong uploading file mime type

有时,当使用<input>标记上传文件时,遇到文件扩展名与application/config/mimes.php定义的mime类型不匹配的问题。 例如,当我上载.doc文件时,事实证明,它的mime类型实际上是application/octet-stream ,而不是预期的application/msword

过去我有时会遇到这个问题。 我确实通过将application/octet-stream添加到.doc mime数组来解决。 但是,有没有适当的方法来解决它?

我认为浏览器以某种方式强制了我文件的mime类型。 是否有任何HTTP标头或html元标记可防止这种情况?

正如您在这里看到的那样这是一个常见问题,您所采用的解决方案是合法的。

这不是由于codeignitor的问题。 这是由于php问题。 例如, finfo_file函数将返回扩展名为jpeg的图像作为image / png。

因此,解决方案是转到config/mimes.php文件,然后添加相应的扩展名。

如果您不知道php背后的扩展名是什么,请添加此代码以进行检查。

$finfo = @finfo_open(FILEINFO_MIME);
$mime = @finfo_file($finfo, $_FILES["myname"]['tmp_name']);

$mime将是php最终返回的扩展名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM