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

时间:2012-05-25 23:24:22

标签: php http codeigniter file-upload mime-types

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

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

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

2 个答案:

答案 0 :(得分:1)

正如您所见here这是一个常见问题,您应用的解决方案是合法的。

答案 1 :(得分:0)

这不是由于codeignitor的问题。这是由于php问题。例如,var signal = d3.select('#signal_container'); var signalName = ["Please Select", "Temperature", "Pressure"]; var signalSelect = signal .append('select') .attr('class', 'select') .attr('multiple', ''); var signalOptions = signalSelect .selectAll('option') .data(signalName).enter() .append('option') .text(function (d) { return d; }); 函数将返回带有扩展名jpeg的图像作为image / png。

因此,解决方案是转到finfo_file文件,然后添加相应的扩展名。

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

config/mimes.php

$finfo = @finfo_open(FILEINFO_MIME); $mime = @finfo_file($finfo, $_FILES["myname"]['tmp_name']); 将是php最终返回的扩展名。