国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > web前端 > htmlcss > 使用Kindeditor的多文件(图片)上传时出现上传失败的解决办法/使用Flash上传多文件(图片)上传时上传失败的解决办法

使用Kindeditor的多文件(图片)上传时出现上传失败的解决办法/使用Flash上传多文件(图片)上传时上传失败的解决办法

来源:程序员人生   发布时间:2015-02-27 08:17:46 阅读次数:8012次

近来用户反应希望我们把在线编辑器中的多图片上传功能实现,由于他们在编辑商品描写时常常会有1次上传多张图片的需求,如果要逐张选择的话效力很低,客户的需求就是我们的寻求,很快我们就把完善功能排到了日程表中,要求尽快实现。

我们在项目中使用的在线编辑器是Kindeditor4.1.10,它们的多文件上传插件是使用Flash实现的,本来应当就是能使用的,但为何总是显示上传失败的,百度了1下前人的经验和教训,出现这类情况,有两种可能:1)上传的目标文件夹没有写权限,致使上传的文件没法进行写操作,所以上传失败;2)有做权限验证的系统,由于利用Flash上传时,由于在上传时Flash插件没有把SessionId带过去,引发session丢失致使上传失败。

我们在做单张与多张上传的目标路径是在同1个母文件夹下的,所以不会是第1种情况引发的,那就惟有是第2种情况了,基于这样的判断,那就要在Flash上传的时候手动加上sessionId参数和值,到服务真个时候再接收下来利用到Session中,这样应当就可以解决问题了,事实证明,这样的思路是正确的,下面的具体操作的方法。

打开/kindeditor/plugins/multiimage/multiimage.js,找到postParams这个配置项,把原配置postParams :  K.undef(self.extraFileUploadParams, {}),改成postParams :  $.extend(K.undef(self.extraFileUploadParams, {}), {"__JentianYunSessionID": jt.cookie('__JentianYunSessionID')}),上面的__JentianYunSessionID应当替换成你们的sessionIdname属性,这样,就可以在Flash上传文件时把你们的SessionId带到服务端页面了,然后再要处理上传文件的页面的开头加上

$session = oolsTools::allChar('__JentianYunSessionID');

if($session){//重新设置cookie,解决使用Flash上传图片时cookie丢失的问题

session_id($session);

session_start();

}

这样,kindeditor/Flash实现多文件(图片)上传就可以成功了

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生