直接返回String發(fā)現(xiàn)頁面還是會提示下載 res = "{\"success\": true,\"msg\": \"服務(wù)器還原成功!\"}"; return res; 后來修改為 response.setContentType("text/html;charset=utf-8"); response.getWriter().write("{\"success\": true,\"msg\": \"服務(wù)器還原成功!\"}"); return null; 解決問題。 貼下代碼 js $("#uploadserver").form("submit",{ url:'system/uploadServerFile.do', type:'post', dataType:'text/html', onsubmit:function(){ return $(this).form("validate"); }, success:function(data){ $.messager.progress('close'); var data = $.parseJSON(data); if(data.success==true){ ZENG.msgbox.show(data.msg, 4, 3000); }else{ ZENG.msgbox.show(data.msg, 5, 3000); } document.upserverForm.severfiles.value=""; }, error:function(data){ $.messager.alert("提示信息",data); } }); 后臺 @RequestMapping("/system/uploadServerFile.do") @ResponseBody public String uploadServerFile(@RequestParam MultipartFile[] severfiles,HttpServletRequest request,HttpServletResponse response) throws IOException { String content = null; Map<String,Object> map=new HashMap<String,Object>(); ObjectMapper mapper = new ObjectMapper(); Map m = System.getenv(); String path = (String) m.get("IIS_HOME"); String[] paths = path.split(","); String IIS_HOME = paths[paths.length-1]; try { //如果只是上傳一個文件,則只需要MultipartFile類型接收文件即可,而且無需顯式指定@RequestParam注解 //如果想上傳多個文件,那么這里就要用MultipartFile[]類型來接收文件,并且還要指定@RequestParam注解 //并且上傳多個文件時,前臺表單中的所有<input type="file"/>的name都應(yīng)該是myfiles,否則參數(shù)里的myfiles無法獲取到所有上傳的文件 String realPath = configService.queryConfig("ftpMappingUrl"); File file = new File(realPath); deleteAll(file); for(MultipartFile myfile : severfiles){ //如果用的是Tomcat服務(wù)器,則文件會上傳到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\WEB-INF\\upload\\文件夾中 // String realPath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload"); // String ftpMappingUrl=configService.queryConfig("ftpMappingUrl"); //這里不必處理IO流關(guān)閉的問題,因為FileUtils.copyInputStreamToFile()方法內(nèi)部會自動把用到的IO流關(guān)掉 FileUtils.copyInputStreamToFile(myfile.getInputStream(), new File(realPath, myfile.getOriginalFilename())); File f = new File(realPath+"/"+myfile.getOriginalFilename()); if(f.exists()){ try { ZipFile.unzip(realPath+"/"+myfile.getOriginalFilename(), realPath); //new ZipUtil().unZipFile(realPath+"/"+myfile.getOriginalFilename(), realPath) ; } catch (Exception e) { e.printStackTrace(); } f.delete(); } String sqlfilePath = realPath+File.separator+"iisbak.sql"; File sqlFile = new File(sqlfilePath); boolean b = true; b = JavaExportMysql.load(IIS_HOME,sqlfilePath); if(!b){ // map.put("success", false); // map.put("msg", "數(shù)據(jù)庫還原失敗!確認后重試!"); response.setContentType("text/html;charset=utf-8"); response.getWriter().write("{\"success\": false,\"msg\": \"數(shù)據(jù)庫還原失敗!確認后重試!\"}"); return null; }else{ sqlFile.delete(); // map.put("success", true); // map.put("msg", "服務(wù)器還原成功!"); response.setContentType("text/html;charset=utf-8"); response.getWriter().write("{\"success\": true,\"msg\": \"服務(wù)器還原成功!\"}"); return null; } } }catch (IOException e) { // map.put("success", false); // map.put("msg", "服務(wù)器還原失敗!確認后重試!"); response.setContentType("text/html;charset=utf-8"); response.getWriter().write("{\"success\": false,\"msg\": \"服務(wù)器還原失敗!確認后重試!\"}"); return null; } response.setContentType("text/html;charset=utf-8"); response.getWriter().write("{\"success\": false,\"msg\": \"服務(wù)器還原失敗!確認后重試!\"}"); return null; } |
|
來自: 岑經(jīng)滄海難為水 > 《JAVA》