日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java IOS客户端上传多张图片到服务端

發(fā)布時(shí)間:2023/12/8 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java IOS客户端上传多张图片到服务端 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Java IOS客戶端上傳多張圖片到服務(wù)端
業(yè)務(wù)場(chǎng)景用戶相冊(cè)需要上傳多張圖片到服務(wù)器,上限為12張。本文主要介紹Java服務(wù)端的文件和流的處理。 下圖為iOS端服務(wù)端最終結(jié)果一覽。
?iOS端?


服務(wù)端


如圖在debug模式下,(MultipartHttpServletRequest)?request 接收到的參數(shù)為multtipartFiles[]的一個(gè)數(shù)組。
每一項(xiàng)包括文件名、文件流、和文件大小。這項(xiàng)我們就通過(guò)遍歷數(shù)組然后將文件寫(xiě)入到服務(wù)器的文件中,將新文件、文件URL、對(duì)應(yīng)的用戶ID 保存到數(shù)據(jù)庫(kù)。




關(guān)于下面的code首先進(jìn)行一下簡(jiǎn)要的說(shuō)明:
  • BufferedInputStream 和?BufferedOutputStream 流的使用
  • CommonsMultipartFile類型的文件
  • 對(duì)文件拓展名的判斷
  • 對(duì)文件在服務(wù)器存儲(chǔ)URL和文件名的處理,我將上傳的 原文件名+訂單號(hào)生成工具+拓展名(.jpg|.png)

  • /*** 上傳相冊(cè)* * @param photo* @return*/@RequestMapping(value = Router.User.COMPLETE_ALBUM_INFORMATION, method = RequestMethod.POST)@ResponseBodypublic Response complete_album_information(@RequestParam("userId") int userId,MultipartHttpServletRequest request, HttpServletResponse response) {log.info("用戶完善基本資料開(kāi)始");Response res = this.getReponse();CommonsMultipartFile multipartFile = null;BufferedInputStream is = null; BufferedOutputStream out = null; // 準(zhǔn)備好一個(gè)輸出的對(duì)象try {Iterator<String> itr = request.getFileNames();while(itr.hasNext()){String str = itr.next();multipartFile = (CommonsMultipartFile)request.getFile(str);String[] fileExts = {"jpg", "png"};String fileName = multipartFile.getOriginalFilename(); //原文件名String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());if (Arrays.binarySearch(fileExts, fileExt) != -1) {MultipartFile mpf = request.getFile(str);InputStream inputStream = mpf.getInputStream();is = new BufferedInputStream(inputStream);String url = "D:\\programmeTools\\nginx-1.12.1\\photo" + "/" + str + OrderGeneratedUtils.getOrderNo() + "." + fileExt;File newFile = new File(url);if(is != null) {out = new BufferedOutputStream(new FileOutputStream(newFile)); byte[] buffer = new byte[1024]; int len = -1; while ((len = is.read(buffer)) != -1) { out.write(buffer, 0, len); }String name = str + OrderGeneratedUtils.getOrderNo() + "." + fileExt;List<UserAlbum> albumList = userAlbumService.findByUserId(userId);if(albumList.size() < 10) {UserAlbum album = new UserAlbum(userId,name, url, new Date());userAlbumService.save(album);}else {res.failure("圖片數(shù)量超過(guò)上限");}}}else {return res.failure("該文件類型不能夠上傳");}}return res.success("上傳成功");} catch (Exception e) {log.error("errorMsg:--- 用戶相冊(cè)上傳失敗" + e.getMessage());return res.failure(e.getMessage());}finally {if(is != null) { try { is.close(); }catch (Exception e) { e.printStackTrace(); } } if(out != null) { try { out.close(); }catch (Exception e) { e.printStackTrace(); } } }}





    About Me:
    • Github地址:https://github.com/noseparte?
    • Email:??noseparte@aliyun.com? ???有java與hadoop相關(guān)的技術(shù)問(wèn)題,可以發(fā)私信與我交流。
    • NPM地址:??https://www.npmjs.com/~noseparte
    • WebSite:?http://www.noseparte.com/???Copyright ? 2017 noseparte

    總結(jié)

    以上是生活随笔為你收集整理的Java IOS客户端上传多张图片到服务端的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。