【问题标题】:CodeIgniter: wrong uploading file mime typeCodeIgniter:上传文件 mime 类型错误
【发布时间】:2012-06-01 12:10:02
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    这不是由于 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 最终返回的扩展名。

    【讨论】:

      【解决方案2】:

      您可以看到here 这是一个常见问题,您应用的解决方案是合法的。

      【讨论】:

      • 啊。感谢您的链接:) 这是另一个 techblog.procurios.nl/k/news/view/15872/14863/…>
      猜你喜欢
      • 2012-02-05
      • 2015-01-04
      • 2012-04-14
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 2017-08-09
      相关资源
      最近更新 更多