有时,使用<input>
标记上传文件时,遇到文件扩展名与application/config/mimes.php
中定义的mime类型不匹配的问题。例如,当我上传.doc
文件时,它的mime类型实际上是application/octet-stream
,而不是application/msword
。
过去我有时会遇到这个问题。我确实通过将application/octet-stream
添加到.doc
mime数组来解决问题。但有没有正确的方法来解决它?
我认为浏览器以某种方式强制我的文件的mime类型。是否有任何类型的HTTP标头或html元标记来阻止这种情况?
答案 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最终返回的扩展名。