[英]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.