kindeditor上传多图并且支持预览与编辑功能

开始实现上传多图,使用的方法是input=file,然后name等于数组,这样的确可以实现多图上传,处理多图的方法还借鉴了php 多图片上传 【原创】,但是这样仅仅是把图片上传到服务器,本地不可以预览,不可以编辑,功能稍微弱了一点;于是乎,找到了kindeditor编辑器,用了它的一个多图上传的组件,使用的方法很简单:

把包解压到指定位置,在页面引入一个css样式文件,一个主要的js文件,一个语言包,注意路径:

<link rel="stylesheet" href="./kindeditor/themes/default/default.css" />
 <script src="./kindeditor/kindeditor.js"></script>
 <script src="./kindeditor/lang/zh_CN.js"></script>

页面添加input按钮,再指定一块区域作为图片预览的位置,源码来自官网:

<input type="button" id="J_selectImage" value="批量上传" /> //出发按钮
<div id="J_imageView"></div>  //预览图片的位置

<script>
    KindEditor.ready(function(K) {
        var editor = K.editor({
            allowFileManager : true  //开启多文件上传
        });
        K('#J_selectImage').click(function() {
            editor.loadPlugin('multiimage', function() {
                editor.plugin.multiImageDialog({
                    clickFn : function(urlList) {
                        var div = K('#J_imageView');
                        //div.html('');  //这行要去掉,会影响图片预览框内的样式
                        K.each(urlList, function(i, data) {
                            div.append('<img src="' + data.url + '">');  //data.url是图片上传之后返回的url
                        });
                        editor.hideDialog();
                    }
                });
            });
        });
    });
</script>

使用效果如图:

 

选择图片

上传之后的预览

到这里,还只是一个普通的可预览的上传多图,而在实际的项目里,我想要的效果则是可编辑,并且为多图绑定一个集合;于是乎,又借鉴了phpcms里面上传多图的思路:就是在把图片集合上传到服务器的时候,只是把图片的url地址绑定在一起,而不用管图片实体的具体位置,必要的时候,这张图片也可以分配到别的集合;于是乎,直接修改上传图片的回调函数:

K.each(urlList, function(i, data) {
div.append('<div class="pic-item"><img src="' + data.url + '" alt="" width="200" height="200"><input type="text" name="multi-pic[]" value="' + data.url + '"><span class="remove-pic-item">X</span></div>'); //大致就是这样的结构
});
 
//需要在<div id="J_imageView"></div>外部或内部嵌套一个form表单
其实就是把图片的地址再作为一个text数组,再通过form表单传至服务器

 

这样前台在上传图片不仅可以预览,也可以编辑(通过jquery,点X把当前的图片和input框从dom删除)

多图片上传php版本

if (isset($_FILES['image']) &&  $_FILES['image']['name']) {
  $file = $_FILES['image'];
  $num = count ($_FILES['image']['name']); //计算上传的图片数量
  // 处理数组
  for ($i=0;$i < $num;$i++) {
    $data[$i]['name'] = $file['name'][$i];
    $data[$i]['type'] = $file['type'][$i];
    $data[$i]['tmp_name'] = $file['tmp_name'][$i];
    $data[$i]['error'] = $file['error'][$i];
    $data[$i]['size'] = $file['size'][$i];
  }
  foreach ($data as $key => $val) {
    $_FILES['image'] = $val;
    $img[$key] = $this-> fileUpload('image'); //上传图片后返回name值
  }
  $info['image'] = serialize($img);   // 序列化数组存数据库
  $conn->insert('maintenance', $info);
}

ok,总算实现了想要的效果,虽然还不是很完美。使用kindeditor作为富文本编辑器也还是比较不错的,它和ueditor相比,功能更精简,更易用(个人感受)

时间: 2024-09-17 04:09:08

kindeditor上传多图并且支持预览与编辑功能的相关文章

kindeditor 上传falsh问题,能预览,保存后就显示不出来

问题描述 上传flash:生成的代码<embedsrc="/KindEditor/attached/flash/20150814/20150814102430_4039.swf"type="application/x-shockwave-flash"width="550"height="400"quality="high"/>点击确定后,上面的代码别转义了,生成下面代码<imgclass=

数据库-PHP上传头像,裁剪,预览与显示

问题描述 PHP上传头像,裁剪,预览与显示 PHP链接数据库,上传图片到服务器文件夹,地址保存到数据库,并且含有图片预览与裁剪功能,求具体代码 解决方案 可以用jcrop,他们官网提供的demo是php的,下载地址:http://deepliquid.com/content/Jcrop.html

php文件上传代码(带图片预览效果)(1/2)

 代码如下 复制代码 <script language="网页特效" type="text/网页特效" > //上传大图片显示  function showuploadpic(uploadpic)   {    if(uploadpic.value!="")    {     document.getelementbyid('preview').src=uploadpic.value;     }        }    //上传小图

自动预览上传图(图片预览)]

上传 自动预览上传图(图片预览)powered BY AIRZEN 2004/05/21 作者信息:Author:airzen QQ:39192170E-mail:airzen@sohu.com 转贴请保留作者信息,谢谢 <input name="w_s" type="file" id="w_s" onChange="load_img(this.value,img_s);"><input name="

上传多图异常-安卓客户端上传多图到PHP服务器,出现SocketTimeOutException

问题描述 安卓客户端上传多图到PHP服务器,出现SocketTimeOutException 将图片解析成二进制流向PHP服务器上传多图,出现SocketTimeOutException,PHP部署在SAE上.IOS端上传图片用的是form传图,也出现了超时的问题,有高手知道可能的原因是什么吗?统计的失败率安卓和IOS传图的失败率都是25%左右. 解决方案 SocketTimeOutException,超时了,要么连不上,要么网络不好,要么服务端问题 解决方案二: 客户端和服务端可以把网络连接的

kindeditor 上传文件时 怎么让 文件说明 自动生成

问题描述 kindeditor 上传文件时 怎么让 文件说明 自动生成 修改 kindeditor 上传组件 文件说明 默认返回 文件名 这个应该怎么实现 需要修改什么文件 要详细的 谢谢啦 解决方案 http://blog.sina.com.cn/s/blog_533f138e01019re7.html 解决方案二: kindeditor的demo里面有对应的语言,修改语言文件名的生成规则就好了,不过建议还是用时间命令,要不有中文你处理不好编码小心乱码..

android 4.0-Okhttp上传多图,大于4.5M失败

问题描述 Okhttp上传多图,大于4.5M失败 小一点的图片可以上传成功,大了在onResponse中输出是一个404页面,有没有小伙伴知道怎么解决,或者有图片上传的框架,多谢了,下面是我用的上传代码 public static String uploadImages(int parameter, String url, Map<String, String> map, List<String> paths, final Handler handler) { // 参数类型 Me

kindeditor上传完成后图片裂了,是什么问题?怎么修改

问题描述 kindeditor上传完成后图片裂了,是什么问题?怎么修改 初步判断应该是路径问题,如果是路径问题,那么在哪里修改路径呢? 解决方案 Kindeditor跨域上传图片正确修改方法 解决方案二: 服务器端直接返回绝对路径 ,就是 /upload/xxxxx.jpg 这种路径,要不你要修改kindeditorpluginsimageimage.js afterUpload : function(data) { dialog.hideLoading(); if (data.error ==

php把上传的图保存到数据库并显示代码

php教程把上传的图保存到数据库教程并显示代码 // Connect to database $errmsg = ""; if (! @mysql教程_connect("localhost","root","")) {    $errmsg = "Cannot connect to database";    } @mysql_select_db("db1");   $q = <&