hjr-JavaScript:上传控件webuploader与富文本编辑器umeditor

#开始
关于上传的资源,最好是单独写个模块,或者是使用第三方云服务存储,或者是自己买服务器存储,测试环境和正式环境共用一套资源链接,下载相关压缩包,直接用umeditor和webuploader命名两个文件夹并直接把两种插件全部解压后整个都放到资源文件夹中,如laravel的public文件夹,为了省麻烦最好直接全放进去。
#注意

  • 这些控件写上name属性就可以直接放到表单中当做input框来用
  • 富文本直接把他当做input框就行,直接把文本存到数据库,读取时把内容插到div中就能看到自带格式的效果,上传的图片之类的都会自动生成路劲到服务器并自动引用。
  • 上传文件一般是把路径存到服务器,然后自己写提交地址对应的处理文件,文件名一般用当前时间+随机字符串,并写程序接收和把文件存到自定义位置,与前面的数据库存储路径要一致。
    #webuploader
    ##引用
 {{--引入上传插件--}}
    <link rel="stylesheet" href="{{ URL::asset('/webuploader/webuploader.css') }}">
    <script type="text/javascript" src="{{URL::asset('/webuploader/webuploader.js')}}"></script>

##初始化

<script>
    $(function(){
        <!-- 实例化上传控件代码 -->
        uploader = WebUploader.create({
            // 选完文件后,是否自动上传。
            auto: true,
            // swf文件路径
            swf: '{{URL::asset('/webuploader/Uploader.swf')}}',
            // 文件接收服务端。
            server: '{{ url('upload') }}',
            // 选择文件的按钮。可选。
            // 内部根据当前运行是创建,可能是input元素,也可能是flash.
            pick: '#filePicker',
            // 只允许选择图片文件。
            accept: {
                title: 'Images',
                extensions: 'gif,jpg,jpeg,bmp,png',
                mimeTypes: 'image/*',
                multiple: false
            }, formData: {
                '_token': "{{ csrf_token() }}"
            }
        });

        //展示图片列表的jquery对象
        var $list = $("#fileList");
        //缩略图大小
        var thumbnailWidth = 100;
        var thumbnailHeight = 100;
        var uploadNum;
//    上传相关
        // 当有文件添加进来的时候
        uploader.on('fileQueued', function (file) {
            var $li = $(
                    '<div id="' + file.id + '" class="file-item thumbnail">' +
                    '<img>' +
                    '<div class="info">' + file.name + '</div>' +
                    '</div>'
                ),
                $img = $li.find('img');

            // $list为容器jQuery实例
            if (!$list.is(":empty")) {
                $list.empty();
            }
            $list.append($li);

            // 创建缩略图
            // 如果为非图片文件,可以不用调用此方法。
            // thumbnailWidth x thumbnailHeight 为 100 x 100
            uploader.makeThumb(file, function (error, src) {
                if (error) {
                    $img.replaceWith('<span>不能预览</span>');
                    return;
                }

                $img.attr('src', src);
            }, thumbnailWidth, thumbnailHeight);
        });

        // 文件上传过程中创建进度条实时显示。
        uploader.on('uploadProgress', function (file, percentage) {
            var $li = $('#' + file.id),
                $percent = $li.find('.progress span');

            // 避免重复创建
            if (!$percent.length) {
                $percent = $('<p class="progress"><span></span></p>')
                    .appendTo($li)
                    .find('span');
            }

            $percent.css('width', percentage * 100 + '%');
        });

        // 文件上传成功,给item添加成功class, 用样式标记上传成功。
        uploader.on('uploadSuccess', function (file, request) {
            $('#' + file.id).append("<div class='error'>上传成功</div>");
            $('#' + file.id).addClass('upload-state-done');
//            console.log(request['_raw'])
            $("#img_src").val(request['_raw']);
        });
        // 文件上传失败,显示上传出错。
        uploader.on('uploadError', function (file) {
            var $li = $('#' + file.id),
                $error = $li.find('div.error');

            // 避免重复创建
            if (!$error.length) {
                $error = $('<div class="error"></div>').appendTo($li);
            }
            $error.text('上传失败');
        });

        // 完成上传完了,成功或者失败,先删除进度条。
        uploader.on('uploadComplete', function (file) {
            $('#' + file.id).find('.progress').remove();
        });
    });
</script>


##html

   <div id="uploader_add">
      <!--用来存放item-->
       <div id="fileList" class="uploader-list"></div>
       <div id="filePicker">选择图片</div>
       <input readonly="true" datatype="*" errormsg="请选择图片" id="img_src" name="ban_img" value=""/>
       <span  class="Validform_checktip"></span>
   </div>

#umeditor

##引用

{{--引入百度编辑器--}}

    <link rel="stylesheet" href="{{ URL::asset('/umeditor/themes/default/css/umeditor.css') }}">
    <script type="text/javascript" src="{{URL::asset('/umeditor/third-party/template.min.js')}}"></script>
    <script type="text/javascript" src="{{URL::asset('/umeditor/umeditor.config.js')}}"></script>
    <script type="text/javascript" src="{{URL::asset('/umeditor/umeditor.js')}}"></script>
    <script type="text/javascript" src="{{URL::asset('/umeditor/lang/zh-cn/zh-cn.js')}}"></script>

##初始化

<script>
    $(function(){
        <!-- 实例化编辑器代码 -->
        um = UM.getEditor('myEditor');
    });
</script>

##html

  <h3>xxx</h3>
   {{--编辑器--}}
  <script name="ban_desc" type="text/plain" id="myEditor" style="width:500px;height:300px;">
 </script>

附录
[]表示数组,
{}表示对象;一般在JSON中使用;

var arr = new Array();
在js中其实可以等价于var arr = [];

var row1 = {};
row1.id= “1”;
row1.name = “xxx”;
或者
var row2 = {id:‘2’,name:‘abc’}

var json = [];
json.push(row1);
json.push(row2);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师小侯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值