微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

我们在做单张与多张上传的目标路径是在同一个文件夹下的,所以不会是第一种情况引起的,那就唯有是第二种情况了,基于这样的判断,那就要在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 =\tools\Tools::allChar('__JentianYunSessionID');

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

session_id($session);

session_start();

}

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐