Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php codeigniter的应用程序/八位字节流mime类型问题_Php_Codeigniter_Uploadify - Fatal编程技术网

Php codeigniter的应用程序/八位字节流mime类型问题

Php 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

我对codeigniter上传类有一个奇怪的问题。我使用上传(http://www.uploadify.com)添加对文件上传的ajax支持。当文件从uploadify发送到codeigniter时,我总是收到一条消息,表明不允许使用该文件类型。我做了一些研究,发现问题的原因是uploadify使用的flash。出于某种原因,它总是发送应用程序/八位字节流mime类型的文件。我试图上传jpg、png、gif文件类型,但codeigniter总是显示类型为application/octet stream


有人知道如何在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)的函数


这种方法有多安全?有人能上传我真正允许的其他类型的文件吗?这种方法有多安全?有人能上传我真正允许的其他类型的文件吗?