关于h5前端多图上传和后台接收

来源:互联网 发布:战绳训练方法 知乎 编辑:程序博客网 时间:2024/05/29 19:51

首先html和jsp的关于图片上传的js还是有略微差别的,前段时间写了个单张上传的。今天是因需求增加,所以要改为多张上传,废话也不说,上代码先
html部分的,比之前的多了个multiple,表示的是我要选择多张图片

<td><input type="file" id="pic" name="pic" multiple onchange="uploadFile(this)"></td>

js部分,这里相比较于单张的无非就是要先获取到files,然后去遍历它,最后追加到formdata里面。

function uploadFile(obj){    var f1=obj.files.length;    console.log(f1);    var formData = new FormData();  for (var i=0;i< f1;i++) {        var file=obj.files[i];        //var r = new FileReader();          //r.readAsDataURL(file);        formData.append("file" , file);} $.ajax({        type: "POST",        url: ",        data: formData ,        processData : false, //必须false才会自动加上正确的Content-Type        dataType: 'json',        contentType : false ,        xhr: function(){            var xhr = $.ajaxSettings.xhr();            if(onprogress && xhr.upload) {                xhr.upload.addEventListener("progress" , onprogress, false);                return xhr;            }        },        success: function(res) {            console.log(res.url);            $("#versionsize").val(res.filesize);            $("#versionurl").val(res.url);        }    });

java接收:

    //提供get/set方法    private File[] file; //上传的文件    private String[] fileFileName; //文件名称    private String[] fileContentType; //文件类型public String uploadmore(String filepath) throws Exception{        String url = "";        if (file != null) {              java.util.Date Datenow=new java.util.Date();//获取当前日期              java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyyMMdd");                String nowdate = formatter.format(Datenow).substring(0,6); //将日期格式化              String realDirectory = request.getSession().getServletContext().getRealPath(filepath)+"/"+nowdate;              for (int i = 0; i < file.length; i++) {                  String fileType = fileFileName[i].substring(fileFileName[i].length()-3);                  String filename=System.currentTimeMillis() + (i + ".") + fileType;                  String filedir = realDirectory+"/" + filename; // 以系统时间作为上传文件名称,设置上传文件的完整路径                  if (file[i].length()>1024*1024) {                               ImgUtill.compressImage(file[i].getAbsolutePath(), filedir, 500, 680);                }else{                      File f = new File(filedir);                      try {                            FileUtils.copyFile(file[i], f);                      } catch (IOException e) {                            e.printStackTrace();                      }                }                    if (i==file.length-1) {                      url += Constants.FILE_DIRECTORY + filepath + "/" +nowdate+"/"+filename;                    }else{                      url += Constants.FILE_DIRECTORY + filepath + "/" +nowdate+"/"+filename+",";                    }            }        }              return url;    }
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 qq发红包对方看不不到怎么办 手机浏览器支付页面弹不出来怎么办 新手机登录微信需要验证怎么办 手机淘宝注册账号换手机号后怎么办 冒充微信好友诈骗被骗了怎么办 刚刚激活的电信手机号码忘了怎么办 用手机充话费充错了怎么办 王者荣耀号丢了换成了别的号怎么办 微信给空号q币怎么办 qq密码被别人改了怎么办怎么登 qq刚改了密码忘了怎么办 qq密码忘了想改密码怎么办 qq账号和密码都忘了怎么办 我的微信被别人改了密码怎么办 微信被盗密码被改了怎么办 微信被盗了密码都被改了怎么办 微信被别人改密码改手机号了怎么办 微信号手机号码换了密码改了怎么办 电信充值卡的密码刮花了怎么办 qq充了q币不到账怎么办 开通黄钻不支持手机话费开通怎么办 银行卡给红包充值迟迟不到账怎么办 我想用信用卡往微信零钱充钱怎么办 修改密保手机跳过原手机验证怎么办 骏卡有用但是充不进去怎么办 在云南移动上充错话费了怎么办 手机版本太低安装不了支付宝怎么办 手机下载支付宝后找不到了怎么办 王者荣耀充值成功游戏未到账怎么办 银行卡号和密码都忘了怎么办 微信支付密码和银行卡号忘了怎么办 请问5位数的密码忘记了怎么办 苹果手机四位数密码忘记了怎么办 锡山教育app登陆密码忘了怎么办 新商盟手机订烟登录忘记密码怎么办 在qq上修改支付密码忘记怎么办 微信红包支付密码忘了怎么办 qq钱包绑定了别人的银行卡怎么办 用支付宝充手机话费怎么退款怎么办 我有个qq号丢了怎么办 微信红包密码输错了怎么办