Php codeigniter的应用程序/八位字节流mime类型问题
我对codeigniter上传类有一个奇怪的问题。我使用上传(http://www.uploadify.com)添加对文件上传的ajax支持。当文件从uploadify发送到codeigniter时,我总是收到一条消息,表明不允许使用该文件类型。我做了一些研究,发现问题的原因是uploadify使用的flash。出于某种原因,它总是发送应用程序/八位字节流mime类型的文件。我试图上传jpg、png、gif文件类型,但codeigniter总是显示类型为application/octet streamPhp codeigniter的应用程序/八位字节流mime类型问题,php,codeigniter,uploadify,Php,Codeigniter,Uploadify,我对codeigniter上传类有一个奇怪的问题。我使用上传(http://www.uploadify.com)添加对文件上传的ajax支持。当文件从uploadify发送到codeigniter时,我总是收到一条消息,表明不允许使用该文件类型。我做了一些研究,发现问题的原因是uploadify使用的flash。出于某种原因,它总是发送应用程序/八位字节流mime类型的文件。我试图上传jpg、png、gif文件类型,但codeigniter总是显示类型为application/octet str
有人知道如何在codeigneter中捕获使用flash上传的真实文件类型吗?我找到的唯一解决方案是添加:
'application/octet-stream'
进入
应用程序/config/mimes.php
文件,以获取所需的各种文件类型。没有特别的帮助,但这是唯一有效的方法。我找到的唯一解决方法是添加:
'application/octet-stream'
进入
应用程序/config/mimes.php
文件,以获取所需的各种文件类型。没有特别的帮助,但这是唯一有效的方法。这里的问题是CodeIgniter的上传程序似乎有一个小错误,我同意@bearfriend
上载库的允许\u文件类型()
函数允许参数$ignore\u mime
,但do\u Upload
函数中未提供此参数。因此,我的解决方案是关闭mime检测,并(我敢说)修改核心上载类,以便文件上载检查如下所示:
如果(!$this->is_allowed\u filetype($this->detect\u mime?false:true))
**您的detect\u mime参数的倒数是必需的
然而,(不幸的)这里还有另一个安全问题。用户可以将virus.exe重命名为allowed.jpg,该文件仍被允许。这将取决于文件权限、文件的用途以及文件的使用方式。例如,我在这里尝试了这个想法(),但它没有加载,因为它不是一个有效的图像。不同的操作系统可能不同
我的解决方案的另一个问题是,如果您决定升级CI,这些更改将丢失(尽管可能会通过更高版本进行改进)
哦,而且CI也不会将
$this->file\u type
设置为ignore\u mime
true。如果您在上传后需要在输出中输入文件类型,解决方案是使用您自己的变量名(而不是坚持使用ignore mime)。这里的问题是CodeIgniter的上传程序似乎有一个小错误,我同意@bearfriend
上载库的允许\u文件类型()
函数允许参数$ignore\u mime
,但do\u Upload
函数中未提供此参数。因此,我的解决方案是关闭mime检测,并(我敢说)修改核心上载类,以便文件上载检查如下所示:
如果(!$this->is_allowed\u filetype($this->detect\u mime?false:true))
**您的detect\u mime参数的倒数是必需的
然而,(不幸的)这里还有另一个安全问题。用户可以将virus.exe重命名为allowed.jpg,该文件仍被允许。这将取决于文件权限、文件的用途以及文件的使用方式。例如,我在这里尝试了这个想法(),但它没有加载,因为它不是一个有效的图像。不同的操作系统可能不同
我的解决方案的另一个问题是,如果您决定升级CI,这些更改将丢失(尽管可能会通过更高版本进行改进)
哦,而且CI也不会将
$this->file\u type
设置为ignore\u mime
true。如果上传后需要输出中的文件类型,解决方案是使用您自己的变量名(而不是坚持使用ignore\u mime)。我有一个类似的问题,我找到的解决方案是创建一个MY\u upload库并覆盖设置文件类型的函数(\u file\u mime\u type)
我有一个类似的问题,我找到的解决方案是创建一个MY_Upload库并重写设置文件类型(_file_mime_type)的函数
这种方法有多安全?有人能上传我真正允许的其他类型的文件吗?这种方法有多安全?有人能上传我真正允许的其他类型的文件吗?