程序员人生 网站导航

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

栏目:htmlcss时间:2015-02-27 08:17:46

近来用户反应希望我们把在线编辑器中的多图片上传功能实现,由于他们在编辑商品描写时常常会有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实现多文件(图片)上传就可以成功了

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐