对整合的最佳解决方案与swfuploadCodeIgniter
CodeIgniter是一个轻量级的MVC框架,方便,最近的项目涉及批量上传,然后是使用插件swfupload,虽然有很多Ci和swfupload的帖子,但在线,并不是很完整,所以这里的综合优势,通过自己的实践经验,在安排。问题1:无法获取文件类型
答:因为所有swfupload文件的MIME文件应用/字节流,CodeIgniter上传类不能得到准确的图片,根据CI官方wiki,解决了。
在你的视图文件,包括swfupload Javascript文件:
复制代码代码如下所示:
在你的控制器,通过档案资料为do_upload名称值
美元->上传-> do_upload('filedata)
在你的mimes.php文件,添加的应用程序/字节流的所有允许的图像格式
GIF=阵列(图像/ GIF,'application /字节流),
JPEG=阵列(图像/ JPEG,图像/ pjpeg ','application /字节流),
JPG=阵列(图像/ JPEG,图像/ pjpeg ','application /字节流),
JPE'=阵列(图像/ JPEG,图像/ pjpeg ','application /字节流),
PNG=阵列(图像/ PNG,图像/ x-png ','application /字节流),
问题2:后台进行会话验证将导致上传后退出的状态。
答案uff1a
一般方法:swfuplaod上传,将打开一个新的过程,这个过程是不一样的,为了解决这个问题,你需要指定一个session_id,然后判断在登录页面,如果你有超过session_id后,然后使用功能session_id($ _post { 'php_sessionid ' })指定的
在上传页面的js,可以获取当前session_id。
CI州:在一般情况下,由于uploadify,swfupload等等都是闪光的客户,所以他们所产生的用户从用户代理不同,用户使用的浏览器,虽然用户登录到你的系统中生成一个会话,当你上传的程序,你会产生另一个会话(当以上根据选项是打开的)。
所以,不会丢失,但当你上传一个文件,CI创造Uploadify另一个会话。
解决方案1:设置为配置'sess_match_useragent'} {假再试。
解决方法2(推荐):出于安全原因,不推荐使用第一方案,但使用其他验证方法,如每天上传的,在一个额外的令牌,令牌URL服务器(例如,令牌可以用户名散列)。请参阅stblog上传验证实施(使用SWFUpload)的具体实施。我试过这个方法,关键是,如果你把会话类的自动加载的加载,所以这绝对是一个失败,解决办法是创建一个类,如my_controller继承ci_controller,用于后台登陆,需要权威确定背景处理,上传类ci_controller不是亲的继承当然,即使会话类,还有上传验证,但是可以用来验证post_params价值:
实例:
复制代码代码如下:班级上传扩展ci_controller {
/ / *******
}
/ / ~~~~~~~~~~~~~~~~~
类client_photo延伸my_controller {
功能__construct(){
家长::__construct();
}
函数索引(){
}
}
/ / ~~~~~~~~~~~~~~~~~~~~~
类my_controller延伸ci_controller {
公共功能__construct(){
家长::__construct();
美元->荷载->图书馆('session);
}
}