1. 程式人生 > >spring mvc --上傳檔案,檔案和其他資料一起提交

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;
          }
      }
  }