Web uploader上传word,pdf实例

看了许多,终于自己做了一个。废话不说,直接上代码

html部分

<div id="uploader" class="wu-example">
    <!--用来存放文件信息-->
    <div id="thelist" class="uploader-list"></div>
    <div class="btns">
        <div id="picker">选择文件</div>
        <button id="ctlBtn" class="btn btn-default">开始上传</button>
    </div>
</div>

js部分

//初始化Web Uploader
    var uploader = WebUploader.create({

        auto: false,                                         //自动上传
        swf: '/css/js/plugins/webuploader/Uploader.swf',     // swf文件路径
        server: '/xxxx/upload/xxxxx',                    // 文件接收服务端。
        pick: '#picker',                                     // 选择文件的按钮。可选。
        accept: {  
            title: 'Files',  
            extensions: 'pdf,doc,docx',
            mimeTypes: 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document'  
                       +',application/pdf'  
        },
        fileNumLimit: 10,                              //最大上传数量为10
        fileSingleSizeLimit: 20 * 1024 * 1024,         //限制上传单个文件大小20M
        fileSizeLimit: 200 * 1024 * 1024,              //限制上传所有文件大小200M
        resize: false                                  // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
    });

    //上传前的判断处理
    uploader.on('error', function( type ){
        if ( type === 'Q_EXCEED_NUM_LIMIT' ) {
            layer.msg('最多允许上传10份xxx');
        } 
        if ( type === 'F_DUPLICATE' ) {
            layer.msg('xxx重复,不能上传!');
        }
        if (type=="Q_TYPE_DENIED"){
            layer.msg("请上传doc、pdf格式文件");
        }else if(type=="F_EXCEED_SIZE"){
            layer.msg("文件大小不能超过20M");
        }
    });

    // 当有文件被添加进队列的时候
    var $list = $("#uploader");
    uploader.on( 'fileQueued', function( file ) {
        $list.append( '<div id="' + file.id + '" class="item">' +
            '<h4 class="info">' + file.name + '</h4>' +
            '<p class="state">等待上传...</p>' + 
            '<a class="webuploadDelbtn">删除</a><br/>' +
        '</div>' );
    });

    //点击开始上传
     $("#ctlBtn").on( 'click', function() {  
         uploader.upload();  
     });

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

        // 避免重复创建
        if ( !$percent.length ) {
            $percent = $('<div class="progress progress-striped active">' +
              '<div class="progress-bar" role="progressbar" style="width: 0%">' +
              '</div>' +
            '</div>').appendTo( $li ).find('.progress-bar');
        }
        $li.find('p.state').text('上传中');

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


    //文件成功、失败处理
    uploader.on( 'uploadSuccess', function( file ) {
        $( '#'+file.id ).find('p.state').text('已上传');
        $( '#'+file.id ).find('a.webuploadDelbtn').remove();
    });
    //上传错误
    uploader.on( 'uploadError', function( file ) {
        $( '#'+file.id ).find('p.state').text('上传出错');
    });
    //上传完成
    uploader.on( 'uploadComplete', function( file ) {
        $( '#'+file.id ).find('.progress').fadeOut();
    });

    //删除
    $list.on("click", ".webuploadDelbtn", function () {
        var $ele = $(this);
        var id = $ele.parent().attr("id");
        var file = uploader.getFile(id);
        uploader.removeFile(file,true);  
    }); 

    //删除时执行的方法
    uploader.on('fileDequeued', function (file) {
        $(file.id).remove();
        $('#'+file.id ).find('span.state').text('已经取消');
        $('#'+file.id).hide();   
        console.log("remove");     
    }); 

java 后台

    @RequestMapping("/xxx")
    @ResponseBody
    public void uploaderResumes(@RequestParam("file") MultipartFile file, HttpServletRequest request) {  
        // 判断文件是否为空  
        if (!file.isEmpty()) {  
            try {  
                // 文件保存路径  
                String filePath = request.getSession().getServletContext().getRealPath("/") + "upload" 
                        + System.getProperty("file.separator") 
                        + file.getOriginalFilename();  
                // 转存文件  
                file.transferTo(new File(filePath));  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
    }

图片

样式

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
van-uploader是一款基于Vue.js的上传组件,支持单个或批量上传的功能,并且可以限制上传的文件类型、大小等参数。 使用van-uploader可以快速实现文件上传功能,以下是上传图片的实例: 1.在Vue组件中引用van-uploader组件 ``` <van-uploader action="//example.com/upload" :on-success="handleSuccess" /> ``` 其中action属性指定上传文件的地址,on-success属性指定上传成功后的回调函数。 2.定义handleSuccess函数,用于处理上传成功后的操作 ``` methods: { handleSuccess(response) { console.log(response); } } ``` 上传成功后,服务器会返回一个响应对象response,我们可以在handleSuccess函数中对返回的数据进行处理。 3.对上传组件进行配置,限制上传文件的类型、大小等属性 ``` <van-uploader action="//example.com/upload" :before-upload="beforeUpload" :max-size="5 * 1024 * 1024" accept="image/*" /> ``` 其中before-upload属性指定在上传前进行的操作,可以用来限制上传文件的类型、大小等属性,max-size属性限制上传文件的最大大小,accept属性限制上传文件的类型,此处指定只能上传图片文件。 4.在Vue实例中定义beforeUpload函数,实现上传前的参数设置 ``` methods: { beforeUpload(file) { console.log(file); const isJPG = file.type === 'image/jpeg'; const isLt2M = file.size / 1024 / 1024 < 2; if (!isJPG) { this.$toast('上传图片只能是 JPG 格式!'); } if (!isLt2M) { this.$toast('上传图片大小不能超过 2MB!'); } return isJPG && isLt2M; } } ``` beforeUpload函数会在上传前调用,可以用来设置上传时的参数,这里我们实现了限制上传图片的格式和大小的功能。 以上是使用van-uploader上传图片的实例,通过简单的配置和绑定函数就可以快速实现文件上传功能,适用于各种Web项目。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值