1,前端上傳/導入文件:
var uploaderXls = new plupload.Uploader({//創建實例的構造方法 runtimes: 'gears,html5,html4,silverlight,flash', //上傳插件初始化選用那種方式的優先級順序 browse_button: 'btnImportXls', // 上傳按鈕 url: "resumeController.do?importExcel", //遠程上傳地址 flash_swf_url: 'plug-in/plupload/js/Moxie.swf', //flash文件地址 silverlight_xap_url: 'plug-in/plupload/js/Moxie.xap', //silverlight文件地址 filters: { max_file_size: '10mb', //最大上傳文件大小(格式100b, 10kb, 10mb, 1gb) mime_types: [//允許文件上傳類型 {title: "files", extensions: "txt,doc,docx"} ] }, multipart_params:{isup:"1"}, multi_selection: false, //true:ctrl多文件上傳, false 單文件上傳 init: { FilesAdded: function(up, files) { //文件上傳前 debugger; uploaderXls.start(); }, FileUploaded: function(up, file, info) { //文件上傳成功的時候觸發 info1 = JSON.parse(info.response); $("#resumeList").datagrid(); layer.alert(info1.msg); //console.log(info.message); }, Error: function(up,info, err) { //上傳出錯的時候觸發 layer.alert(err.message); } } }); uploaderXls.init();
2,后台接收文件,並讀取:
MultipartFile是spring的一個接口,通常我們可以在controller定義方法使用MultipartFile接收form表單提交的文件,然后將MultipartFile可以轉化成一個文件。
可以直接通過MultipartFile自帶的getInputStream()方法將它轉換成File
1 @RequestMapping(params = "importExcel", method = RequestMethod.POST) 2 @ResponseBody 3 public AjaxJson uploaderResumes(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws Exception { 4 AjaxJson j = new AjaxJson(); 5 String message = ""; 6 // 判斷文件是否為空 7 if (!file.isEmpty()) { 9 String buffer = ""; 11 try { 12 if (file.getOriginalFilename().endsWith(".doc")) { 13 WordExtractor ex = new WordExtractor(file.getInputStream()); 14 buffer = ex.getText(); 15 ex.close(); 16 17 } else if (file.getOriginalFilename().endsWith(".docx")) { 18 XWPFDocument xdoc = new XWPFDocument(file.getInputStream()); 19 XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc); 20 buffer = extractor.getText(); 21 extractor.close(); 22 23 } else if (file.getOriginalFilename().endsWith(".txt")) { 24 InputStreamReader read = new InputStreamReader( 25 (file.getInputStream()),"UTF-8"); 26 BufferedReader bufferedReader = new BufferedReader(read); 27 String readerStr = null; 28 while((readerStr = bufferedReader.readLine()) != null){ 29 buffer = buffer + "\n" +readerStr; 30 } 31 read.close(); 32 } else { 33 message = "格式有誤,只允許txt,doc和docx"; 34 } 35 } catch (FileNotFoundException e) { 36 // TODO Auto-generated catch block 37 e.printStackTrace(); 38 message = "操作失敗"; 39 } 40 } 41 j.setMsg(message); 42 return j; 43 }