用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5391|回复: 7
收起左侧

[上传/下载] kindeditor 用 CI 的 上传函数 接受 无文件类型 问题。

[复制链接]
发表于 2012-11-15 17:43:27 | 显示全部楼层 |阅读模式
用 kindeditor 批量图片上传时,遇到以下问题:

kindeditor 发给 服务器 的 数据如下:
------------Ij5ei4Ef1ei4ei4ae0cH2ei4ae0gL6Content-Disposition: form-data; name="Filename"青花瓷小.jpg------------Ij5ei4Ef1ei4ei4ae0cH2ei4ae0gL6Content-Disposition: form-data; name="imgFile"; filename="青花瓷小.jpg"Content-Type: application/octet-stream------------Ij5ei4Ef1ei4ei4ae0cH2ei4ae0gL6Content-Disposition: form-data; name="Upload"Submit Query------------Ij5ei4Ef1ei4ei4ae0cH2ei4ae0gL6--

而上传单个文件时 数据是这样的:

------WebKitFormBoundarySdeT3xemxCI3YwaDContent-Disposition: form-data; name="localUrl"C:\fakepath\青花瓷小.jpg------WebKitFormBoundarySdeT3xemxCI3YwaDContent-Disposition: form-data; name="imgFile"; filename="青花瓷小.jpg"Content-Type: image/jpeg------WebKitFormBoundarySdeT3xemxCI3YwaD--


问题是,CI 的Upload 这个类 里头需要判断文件类型:

// Is the file type allowed to be uploaded?if ( ! $this->is_allowed_filetype())

批量上传图片时的请求是: Content-Type: application/octet-stream

CI 获取不到 是哪一种类型啊。


请教解决方法。



发表于 2012-11-15 19:48:10 | 显示全部楼层
可以用kindeditor自带的upload_json做处理,没必要用CI的。
发表于 2012-11-16 09:31:08 | 显示全部楼层
我也用的kindeditor自带的
发表于 2012-11-17 00:16:48 | 显示全部楼层
https://github.com/EllisLab/CodeIgniter/wiki/SWFUpload

其实官方wiki一直都有说明,是你们不看而已。
发表于 2012-11-18 10:06:22 CI中国手机版 | 显示全部楼层
需要打印file对象并添加资源类型
来自: iPhone客户端
 楼主| 发表于 2012-11-19 08:44:42 | 显示全部楼层
饿,俺是试了好几种方法,最后没办法看源码,最后发现改mime文件配置最好了。

// 但还是有点不太放心,因为修改了系统配置文件。

感谢 lamtin  , 要是早点就好了,就不用看源码了。
发表于 2012-11-19 09:34:04 | 显示全部楼层
本帖最后由 yuvista 于 2012-11-19 09:46 编辑

swfupload会更改上传文件的mimetype,将所有类型都变为  application/octet-stream,使用finfo_file可以找到原始mime类型,不过需要你开启这个扩展。


另外,修改mime文件的方式不可取,因为那样不安全,楼主注意。
 楼主| 发表于 2012-12-13 08:39:56 | 显示全部楼层
lamtin 发表于 2012-11-17 00:16
https://github.com/EllisLab/CodeIgniter/wiki/SWFUpload

其实官方wiki一直都有说明,是你们不看而已。 ...

THX。。。

本版积分规则