首页  >  文章  >  后端开发  >  为什么即使我指定了允许的文件类型,CodeIgniter 仍拒绝我的 WMV 文件?

为什么即使我指定了允许的文件类型,CodeIgniter 仍拒绝我的 WMV 文件?

Linda Hamilton
Linda Hamilton原创
2024-10-31 11:19:29875浏览

Why Does CodeIgniter Reject My WMV Files Even Though I Specified Allowed File Types?

CodeIgniter:解决“不允许的文件类型”上传问题

在此 CodeIgniter 上传场景中,用户会遇到错误,指示尝试上传的不允许的文件类型。尽管在控制器中指定了允许的文件类型,但某些文件格式(例如 WMV 视频)仍无法上传。

在上传过程中,CodeIgniter 会尝试确定文件的 MIME 类型。但是,在某些情况下,Firefox 或其他浏览器可能会错误地将文件扩展名解释为 MIME 类型。当配置中无法识别 MIME 类型时,这可能会导致“文件类型不允许”错误。

要解决此问题,我们可以通过添加以下行来检查为上传文件检测到的 MIME 类型控制器的 upload() 方法:

<code class="php">$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die();</code>

上传 WMV 文件后,会显示检测到的 MIME 类型。例如,它可能显示 application/octet-stream,它不包含在允许的 MIME 类型配置中。

要解决此问题,请将检测到的 MIME 类型添加到 mimes.php 配置文件中:

<code class="php">'wmv' => array('video/x-ms-wmv', 'audio/x-ms-wmv', 'application/octet-stream')</code>

通过在配置中添加正确的 MIME 类型,CodeIgniter 将识别 WMV 文件类型并允许其上传。

请注意浏览器或计算机配置可能会影响上传行为。例如,在某些系统上,只有 AVI 上传可能会成功,而在其他系统上,则可以上传所有支持的文件。这表明问题也可能是特定于浏览器或系统的。

如果 MIME 类型解析方法无法解决上传问题,请参阅以下资源进行进一步故障排除:

  • CodeIgniter 论坛的帖子
  • Firefox 中的 Mimetype 损坏
  • 绕过 IE 的 MIME 类型破坏

以上是为什么即使我指定了允许的文件类型,CodeIgniter 仍拒绝我的 WMV 文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn