PHPWPS

 找回密码
 立即加入

QQ登录

只需一步,快速开始

搜索
热搜: php discuz
查看: 10230|回复: 0

[PHP] kindeditor上传失败(不显示)及session介绍

[复制链接]

280

主题

420

帖子

1970

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1970
发表于 2015-8-28 15:25:02 | 显示全部楼层 |阅读模式
运行环境thinkphp+kindeditor
首先做了单图片上传,发现kindeditor编辑器不显示上传成功的图片,后来发现是输出写错了。
上传返回结果有两种情况。
上传成功,返回的结果是{"error":0,"url":'http://xxx.xxx.xx/xxxx'}
上传失败,返回的结果是{"error":1,"message":'错误内容'}


也就是error参数是都有,成功返回0,失败返回1.成功的时候要给url参数,是错误,给的是message参数。
当时把上传成功返回的url写成了message,所以导致上传的图片不显示。


kindeditor在批量上传的时候,显示上传失败。失败的原因就是因为swfupload这个在传文件到服务器的时候,丢失了session。导致thinkphp判断登录失效。
只需要在上传地址中加入session的参数发送给thinkphp就可以了。
解决办法如下:
首先,在config配置文件中加入如下参数,配置URL或post传入session id的键名为SSID
  1. 'VAR_SESSION_ID' => 'SSID'
复制代码
然后在页面kindeditor的javescript的脚本上传地址后面加上ssid即可,例如如下的代码
  1. KindEditor.ready(function(K) {
  2.   window.editor = K.create('#editor', {
  3.     uploadJson : '__MODULE__/Upload/xxx/SSID/{:session_id()}'
  4.   });
  5. });
复制代码



session介绍
session是根据不同的用户在服务器里面存储的用户数据。比如会在服务器中产生一个session文件。在开启了session的程序中,用户每次访问的时候都会在浏览器的cookie中产生一个PHPSESSION的内容,PHPSESSION的参数就是该用户在服务器中session文件的文件名,这样程序就可以读取到session内容。而上述介绍中的swfupload是靠flash上传的,没法获取cookie中的PHPSESSION,导致“丢失”了session,这个时候,我们在上传地址后面session_id,通过这种url传输的办法,直接给与了服务器,从而使得程序获取session信息。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ|小黑屋|手机版|Archiver|phpwps Inc. ( 鄂ICP备14011625号-1 )

GMT+8, 2025-5-4 16:12 , Processed in 0.054291 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表