weUI 上传图片

前端代码用的是weUI封装好的样式

<div class="weui-gallery" id="gallery">  
            <span class="weui-gallery__img" id="galleryImg"></span>  
            <div class="weui-gallery__opr">  
                <a href="javascript:" class="weui-gallery__del">  
                    <i class="weui-icon-delete weui-icon_gallery-delete" style="margin-bottom: 50px"></i>  
                </a>  
            </div>  
        </div>  
    <div class="weui-cells weui-cells_form">  
            <div class="weui-cell">  
                <div class="weui-cell__bd">  
                    <div class="weui-uploader">  
                        <div class="weui-uploader__hd">  
                            <p class="weui-uploader__title">图片上传(最多三张):</p>  
                        </div>  
                        <div class="weui-uploader__bd">  
                            <ul class="weui-uploader__files" id="uploaderFiles">  
                                  
                            </ul>  
                            <div class="weui-uploader__input-box">  
                                <input id="uploaderInput" class="weui-uploader__input zjxfjs_file" type="file" accept="image/*" multiple="" capture="camera">  
                            </div>  
                        </div>  
                    </div>  
                </div>  
            </div>  
        </div>  


js代码 基本还是weui的代码,里面添加了一些限制和修改了一部分;

$(function() {  
            var tmpl = '<li class="weui-uploader__file" style="background-image:url(#url#)"></li>',  
                $gallery = $("#gallery"),  
                $galleryImg = $("#galleryImg"),  
                $uploaderInput = $("#uploaderInput"),  
                $uploaderFiles = $("#uploaderFiles");  
            $uploaderInput.on("change", function(e) {  
                var src, url = window.URL || window.webkitURL || window.mozURL,  
                files = e.target.files;
                var length=fileArr.length;
                for(var i = 0, len = files.length; i < len; ++i) {  
                    var file = files[i];
                    if(length + i + 1 > 3) {
                        break;
                    }  
                      fileArr.push(file);
                    if(url) {  
                        src = url.createObjectURL(file);  
                    } else {  
                        src = e.target.result;  
                    }  
                    $uploaderFiles.append($(tmpl.replace('#url#', src)));  
                }  
                checkPhotoSize();
            }); 
            
            //控制显示三张以内照片
            function checkPhotoSize(){
                if(fileArr.length>2){
                    $(".weui-uploader__input-box").hide();
                }else{
                    $(".weui-uploader__input-box").show();
                }
            }
                 
            var index; //第几张图片  
            $uploaderFiles.on("click", "li", function() {  
                index = $(this).index();  
                $galleryImg.attr("style", this.getAttribute("style"));  
                $gallery.fadeIn(100);  
            });  
            $gallery.on("click", function() {  
                $gallery.fadeOut(100);  
            });  
            //删除图片  
            $(".weui-gallery__del").click(function() {  
                $uploaderFiles.find("li").eq(index).remove();
                fileArr.splice(index,1);
                checkPhotoSize();  
            });
js提交文件到后台

var fileArr=new Array();这里需要一个全局变量来接受文件

if(fileArr.length!=0){
                              var formData = new FormData();
                              for(var i = 0;i<fileArr.length;i++){
                                  formData.append("file[]",fileArr[i]);
                              }
                            $.ajax({
                                    url: "../../xxx/xxx.do",
                                    type: "POST",  
                                    async: false,  
                                    cache: false, 
                                    processData: false,// 告诉jQuery不要去处理发送的数据
                                    contentType: false,// 告诉jQuery不要去设置Content-Type请求头
                                    data: formData,
                                    success: function(data){
                                    }
                                });
                        }
                          $.toast("保存成功", 5000);
                          window.location.href = "xxxx.html";
                      }else{
                          $.toast("未知错误,请于管理员联系", 2000);
                      }


java后台接收代码 (这个后台代码也是从网上找的,但是网上代码有很多问题,根据实际来改)

       

 @ResponseBody
    @RequestMapping("/xxxx.do")
    public String uploadPictureList( HttpServletRequest request) throws Exception{
        MultipartHttpServletRequest muRequest =(MultipartHttpServletRequest) request;
        List<MultipartFile> files = muRequest.getFiles("file[]");
        
            File targetFile=null;
        String msg="";//返回存储路径
        int code=1;
        List imgList=new ArrayList();
        /*if (files!=null && files.length>0) {
            for (int i = 0; i < files.length; i++) {*/
        if (files!=null && files.size()>0) {
            for (int i = 0; i < files.size(); i++) {
                //String fileName=files[i].getOriginalFilename();//获取文件名加后缀
                String fileName=files.get(i).getOriginalFilename();//获取文件名加后缀
                if(fileName!=null&&fileName!=""){   
                    String returnUrl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() +"/upload/imgs/";//存储路径
                    String path = request.getSession().getServletContext().getRealPath("upload/imgs"); //文件存储位置
                    String fileF = fileName.substring(fileName.lastIndexOf("."), fileName.length());//文件后缀
                    fileName=new Date().getTime()+"_"+new Random().nextInt(1000)+fileF;//新的文件名
 
                    //先判断文件是否存在
                    String fileAdd = DateUtil.formatDate(new Date(),"yyyyMMdd");
                    File file1 =new File(path+"//"+fileAdd); 
                    //如果文件夹不存在则创建    
                    if(!file1 .exists()  && !file1 .isDirectory()){       
                        file1 .mkdirs();  
                    }
                    targetFile = new File(file1, fileName);
                    //targetFile = new File(path);
                    //System.out.println(targetFile+"xc");
                    try {
                       // files[i].transferTo(targetFile);
                        files.get(i).transferTo(targetFile);
                        msg=returnUrl+fileAdd+"/"+fileName;
                        imgList.add(msg);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    
                }
            }
        } 
        
        return JSONArray.fromObject(imgList).toString();
    }
 


————————————————
 
原文链接:https://blog.csdn.net/qq_33589648/article/details/79867579

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值