【问题标题】:Strange CodeIgniter file upload error奇怪的 CodeIgniter 文件上传错误
【发布时间】:2011-09-22 23:31:22
【问题描述】:

我已经设置了“Uploadify”来将文件上传到我的服务器,并使用 CodeIgniter 的文件上传库处理它们。

但是,我认为 Uploadify 更改了文件的 mime 类型,或者做了一些奇怪的事情,导致 CodeIgniter 给出“不允许的文件类型”错误,尽管它被允许。

例如,我允许使用 JPEG 文件,但是当我使用 Uploadify 上传它们时,我收到了该错误。

有什么解决方法吗?基本上,我只希望允许上传图片,例如 .jpg、.jpeg、.bmp、.png。我必须手动检查文件的扩展名还是有更好的选择?

【问题讨论】:

    标签: php codeigniter upload mime-types uploadify


    【解决方案1】:

    你是对的,uploadify 对大多数(全部?)它上传的文件使用 mime 类型 application/octet-stream。我认为这实际上是由 Flash 处理上传引起的,但我不是 100% 确定。

    在您处理上传的控制器中,放入 print_r($_FILES) 并检查 mime 类型是什么,然后将其添加到您的 application/config/mimes.php 文件中。

    所以在您的 mimes.php 文件中,您可能会有类似的内容:

    'jpg'   =>  array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),
    

    【讨论】:

    • 问题是用户可以确定uploadify上传到的url,然后他可以手动将任何恶意文件上传到该url并传递mime类型octet-stream,它将是公认。我改为使用getImageSize() 来确认文件是否为图像。
    • 是的,这是一个问题,不幸的是,这是 Uploadify 的问题。两种可能的解决方案是在上传后通过 PHP 的 GD 库重新创建上传的图像(任何非图像文件都会抛出错误)或找到另一个上传脚本。
    • bmp文件呢
    猜你喜欢
    • 2012-01-22
    • 2012-04-17
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 2017-10-22
    相关资源
    最近更新 更多