Jquery實現異步上傳文件
本文實例為大傢分享瞭Jquery實現異步上傳文件的具體代碼,供大傢參考,具體內容如下
一、參數說明
1、contentType:(默認: "application/x-www-form-urlencoded") 發送信息至服務器時內容編碼類型。默認值適合大多數情況。如果你明確地傳遞瞭一個content-type給 $.ajax() 那麼他必定會發送給服務器(即使沒有數據要發送)。
2、processData:(默認: true) 默認情況下,通過data選項傳遞進來的數據,如果是一個對象(技術上講隻要不是字符串),都會處理轉化成一個查詢字符串,以配合默認內容類型 "application/x-www-form-urlencoded"。如果要發送 DOM 樹信息或其它不希望轉換的信息,請設置為 false。
3、FormData:XMLHttpRequest Level 2添加瞭一個新的接口FormData.利用FormData對象,我們可以通過JavaScript用一些鍵值對來模擬一系列表單控件,我們還可以使用XMLHttpRequest的send()方法來異步的提交這個"表單".比起普通的ajax,使用FormData的最大優點就是我們可以異步上傳一個二進制文件。
二、HTML代碼
<form action="upload.do" id="upForm" method="post" enctype="multipart/form-data"> <table id="table_report" class="table table-striped table-bordered table-hover"> <tr> <td>批量文件:</td> <td><input type="file" name="myfile"></td> </tr> <tr> <td><button type="button" id="saveBtn" class="btn btn-primary">提交</button></td> </tr> </table> </form>
三、Jquery上傳文件代碼
var uploading = false; if(uploading){ bootbox.alert("文件正在上傳中,請稍候!"); return false; } $.ajax({ url:"upload.do", type: "POST",//方法類型 cache : false,// processData: false, contentType: false, dataType:"json", //data:$('#upForm').serialize(), data: new FormData($('#upForm')[0]), beforeSend: function(){ uploading = true; console.log(uploading); }, success: function(data){ var json=eval('(' + data + ')'); if(json.result=="success"){ bootbox.alert("操作成功!"); }else{ bootbox.alert(json.msg); } uploading = false; },error:function(){ bootbox.alert("請求失敗!"); } });
四、Java後臺代碼
@RequestMapping(value="/upload",method = RequestMethod.POST) @ResponseBody public String upfile(@RequestParam("myfile")MultipartFile myfile, MultipartHttpServletRequest request) { logger.info("===上傳文件==="); Map<String, String> map = new HashMap<String, String>(); if (request.getContentLength() > 0) { String fileName = myfile.getOriginalFilename(); InputStream inputStream = null; inputStream = myfile.getInputStream(); //TODO拿這inputstream,可以隨心所欲瞭 } }
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 使用AJAX實現上傳文件
- 用php如何解決大文件分片上傳問題
- JQuery異步post上傳表單數據標準化模板
- Ajax 文件上傳進度監聽之upload.onprogress案例詳解
- 解析element-ui中upload組件傳遞文件及其他參數的問題