spring mvc --上传文件,文件和其他数据一起提交

jsp: 
      var formdata = new FormData();
      formdata.append('file', $('#file')[0].files[0]); //上传文件
      formdata.append('id', $('#id').val()); //id
      formdata.append('temp_id', temp_id);
      formdata.append('deadline', deadline);
      $.ajax({
          type: "POST",
          url: 'file/save.do',
          data: formdata,
          dataType:'json',
          processData:false,
          contentType:false,
          cache: false,
          success: function(data){
          }
      });

Controller:
   @RequestMapping(value="/save")
	@ResponseBody
	public Json save(@RequestParam(value="file", required = false) MultipartFile file,
					 @RequestParam(value="id",required = false) String id,
					 @RequestParam(value="temp_id",required = false) String temp_id,
		@RequestParam(value="deadline",required = false) String deadline) throws Exception{
		
}

jsp页面图片预览及简单的格式验证:

 <img id="imgShow" src="" height="100" width="100">
<input type="file" name="pic_url" id="pic_url" value=""  onchange="checkImg(this)"/>
// js
function checkImg(obj){
    var ff = $("#pic_url").val();
    var type = ff.substring(ff.indexOf(".")).toLowerCase(); //截断"."之前的,得到后缀

    if(ff == null || ff == ""){
        bootbox.alert("请选择文件");
        ("#pic_url").val("");
        return;
    } else if(type!=".png"&&type!=".gif"&&type!=".jpg"&&type!=".jpeg"){  //根据后缀,判断是否符合图片格式
        bootbox.alert("图片类型必须是.gif,jpeg,jpg,png中的一种");
        ("#pic_url").val("");
        return;
    }
    //获取文件的对像
    var thisFile = obj.files[0];
    //设置限制图像的大小为10MB,这里你可以自己设置
    var fSize = 1024 * 1024 *10;
    if (thisFile.size >  fSize) {
        bootbox.alert("图片太大了!请上传10M以内的图片");
        ("#pic_url").val("");
        return;
    }

    var read=new FileReader() // 创建FileReader对像;
    read.readAsDataURL(obj.files[0])  // 调用readAsDataURL方法读取文件;
    read.onload=function(){
        $("#imgShow").attr("src", read.result );
    }
}

excel文件:

<input type="file" name="file" id="file" onchange="uploadFile(this)"/>
function uploadFile(input){
      if (input.files && input.files[0]) {
          var filename = input.files[0].name;
          var temp = filename.substring(filename.indexOf("."), filename.length).toLowerCase();
          if (".xls" != temp && ".xlsx" != temp) {
              alert('Please select .xls or .xlsx file.');
              input.value = "";
              return false;
          }
          var filesize = input.files[0].size / (1024*1024);
          if (filesize > 10) {
              alert('The file size should be within 10M.');
              input.value = "";
              return false;
          }
      }
  }

猜你喜欢

转载自blog.csdn.net/qq_28521569/article/details/84066768
今日推荐