显示“上传出错” 但其实已经上传成功了图片
页面配置如下
<script type="text/javascript">
{/* 实例化编辑器 */}
$(function() {
var um = UM.getEditor('content', {
toolbar: ['source bold italic underline insertorderedlist insertunorderedlist forecolor emotion image video '],
UEDITOR_HOME_URL: "__PUBLIC__/using/umeditor", //设置的是编辑器源码存放的目录
imageUrl: "{:U('Goods/upload')}", //设置的是接收控制器方法。
imagePath: "__ROOT__/Uploads/attach/", //设置的是文件保存的目录
//autoClearinitialContent: true, // 当鼠标焦点在输入框里面,是否自动清理Umeditor里面已定义的{$topic.content}。
wordCount: false,
elementPathEnabled: false,
autoFloatEnabled: false,
textarea: 'content'
});
});
</script>
thinkphp控制器 图片处理如下:图片已经上传成功
public function upload()
{
//$this->checkLogin();//检测用户是否登录,需要另外写~
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 5 * 1024 * 1024;// 设置附件上传允许的大小 $upload->autoSub = true;
$upload->saveName = array('uniqid', '');
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->rootPath = 'Uploads/attach/'; // 设置附件上传根目录
//$upload->savePath = ''; // 设置附件上传(子)目录
$upload->subName = array('date', 'Ymd'); //按年月日生成目录
// 上传文件
$info = $upload->upload();
if ($info) {
// 上传成功 获取上传文件信息
foreach ($info as &$file) {
//拼接出文件相对路径
$file['filepath'] = $file['savepath'] . $file['savename'];
}
//返回json数据被百度Umeditor编辑器
echo json_encode(array(
'url' => $file['filepath'],
'title' => htmlspecialchars($_POST['pictitle'], ENT_QUOTES), 'original' => $file['savename'],
'state' => 'SUCCESS'
));
} else {
// 上传失败
echo json_encode(array('state' => $upload->getError()));
}
}
分两步确认问题:
chrome工具里看下upload最终响应的json是不是success?格式是不是对的?有没有空格、换行?有没有utf-8 bom头?
如果json是对的,回来跟踪umeditor里上传出错是哪里提示的,利用IDE或编辑器的搜索功能快速查找并定位输出,然后跟踪JS判断条件,排查代码