java文件传输接口
生活随笔
收集整理的這篇文章主要介紹了
java文件传输接口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
跨系統的文件傳輸(上傳)接口
在系統開發中經常遇見在不同的系統(如安卓和web端)的文件上傳,有兩種方法。
第一種:如果圖片比較小可以采用post方式將圖片轉成base64的碼放在data域中,以字符串傳參的方式發送到指定的接口取出其值(多個就采用數組)。這種一般試用與僅僅圖片上傳,且圖片比較小大約10kbz左右太大了base64位比較都,http傳輸數據太大,導致不能進入指定接口。
第二種:采用流傳輸的方式傳接口,這種可以批量傳輸且,大小無限制,支持多種類型文件上傳。下面主要講第二種。
客服端代碼
調用客戶端方法
public static void main (String[] args){String actionUrl = "http://shuilangyizu.iask.in/liuf/utilController/fileInteraction.do";Map<String, File> files = new HashMap<String, File>();File file = new File(request.getSession().getServletContext().getRealPath("/") + "upload/temp/1.doc");files.put("x."+file.getName(), file);File file2 = new File(request.getSession().getServletContext().getRealPath("/") + "upload/temp/1.jpg");files.put("y."+file2.getName(), file2);String result = utilService.upLoadFilePost(actionUrl, files);}服務端代碼
public String fileInteraction(HttpServletRequest request, HttpServletResponse response) throws Exception {//操作成功則返回OKString result = "";MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; //解析request,將結果放置在list中Map<String, List<MultipartFile>> fileMap = multiRequest.getMultiFileMap();for (String key : fileMap.keySet()) {List<MultipartFile> files = fileMap.get(key);for (MultipartFile file : files) {if (!file.isEmpty()) {String fileNamePath = file.getOriginalFilename();String[] params = fileNamePath.split("\\.");String filename = "";int i = 0;for (String str : params) {i = i + 1;if (StringUtils.isNotEmpty(filename)) {if (i==params.length) {filename = filename + "." + str;}else{filename = filename + "/" + str;}}else{filename = str;}}// 文件保存路徑 String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/wxfile/" + filename;File iFile = new File(filePath);File iFileParent = iFile.getParentFile();if(!iFileParent.exists()){iFileParent.mkdirs();}// 轉存文件 file.transferTo(new File(filePath));result = "ok";}}}return result;}注意:寫服務器端時可能會報錯
RequestFacade cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest修改方法將
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;修改成
MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext()); MultipartHttpServletRequest multipartRequest = resolver.resolveMultipart(request);感謝大佬的博客!
總結
以上是生活随笔為你收集整理的java文件传输接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 路由器分出ITV与网络信号资料
- 下一篇: 侧扫声呐XTF格式数据获取