java接收ios文件上傳的示例代碼
本文實(shí)例為大家分享了java如何接收ios文件上傳的具體代碼,供大家參考,具體內(nèi)容如下
ios Multipart/form-data POST請求java后臺spring接口一直出錯,搞了兩天,終于解決了,積累下來
package com.xx.controller; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.nupaApp.model.FileMeta; @Controller @RequestMapping("/controller") public class File1Controller { LinkedList<FileMeta> files = new LinkedList<FileMeta>(); FileMeta fileMeta = null; /*************************************************** * URL: /rest/controller/upload upload(): receives files * * @param request * : MultipartHttpServletRequest auto passed * @param response * : HttpServletResponse auto passed * @return LinkedList<FileMeta> as json format * @throws IOException * @throws FileUploadException ****************************************************/ @RequestMapping(value = "/upload", method = RequestMethod.POST) @ResponseBody public String upload(HttpServletRequest request, HttpServletResponse response) throws IOException, FileUploadException { boolean isMultipart = ServletFileUpload.isMultipartContent(request);// 判斷是否是表單文件類型 DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload sfu = new ServletFileUpload(factory); List items = sfu.parseRequest(request);// 從request得到所有上傳域的列表 for (Iterator iter = items.iterator(); iter.hasNext();) { FileItem fileitem = (FileItem) iter.next(); if (!fileitem.isFormField() && fileitem != null) {// 判讀不是普通表單域即是file // 操作fileitem文件步驟,可以獲取大小、路徑 // 定義圖片輸出路徑 String imgPath = "e:" + System.currentTimeMillis() + ".jpg"; // 定義圖片流 InputStream fin = fileitem.getInputStream(); // 定義圖片輸出流 FileOutputStream fout = new FileOutputStream(imgPath); // 寫文件 byte[] b = new byte[1024]; int length = 0; while ((length = fin.read(b)) > 0) { fout.write(b, 0, length); } // 關(guān)閉數(shù)據(jù)流 fin.close(); fout.close(); } } return "200"; } }
pom.xml 添加
<!-- 這個用于上傳文件工具操作 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency>
spring-config.xml 添加bean
<!-- 配置文件上傳,如果沒有使用文件上傳可以不用配置,當(dāng)然如果不配,那么配置文件 中也不必引入上傳組件包 --> <bean id="multipartResolver " class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默認(rèn)編碼 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 內(nèi)存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- iOS實(shí)現(xiàn)文件上傳功能
- vue使用axios實(shí)現(xiàn)文件上傳進(jìn)度的實(shí)時更新詳解
- ios用AFN進(jìn)行文件上傳的示例代碼
- iOS利用AFNetworking實(shí)現(xiàn)文件上傳的示例代碼
- iOS 斷點(diǎn)上傳文件的實(shí)現(xiàn)方法
- iOS大文件的分片上傳和斷點(diǎn)上傳的實(shí)現(xiàn)代碼
- iOS實(shí)現(xiàn)文件切片儲存并且上傳(仿斷點(diǎn)續(xù)傳機(jī)制)
- vue項目中使用axios上傳圖片等文件操作
- iOS開發(fā)中以application/json上傳文件實(shí)例詳解
- Vue axios 中提交表單數(shù)據(jù)(含上傳文件)
- iOS開發(fā)中文件的上傳和下載功能的基本實(shí)現(xiàn)
- IOS開發(fā)教程之put上傳文件的服務(wù)器的配置及實(shí)例分享
相關(guān)文章
如何利用Java正則表達(dá)式校驗(yàn)密碼規(guī)則
正則表達(dá)式正則表達(dá)式是用來指定字符串模式的,可以方便的處理文本信息,這篇文章主要給大家介紹了關(guān)于如何利用Java正則表達(dá)式校驗(yàn)密碼規(guī)則的相關(guān)資料,需要的朋友可以參考下2022-09-09Mybatis實(shí)現(xiàn)動態(tài)排序方式
這篇文章主要介紹了Mybatis實(shí)現(xiàn)動態(tài)排序方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10springboot集成gzip和zip數(shù)據(jù)壓縮傳輸(適用大數(shù)據(jù)信息傳輸)
?在大數(shù)據(jù)量的傳輸中,壓縮數(shù)據(jù)后進(jìn)行傳輸可以一定程度的解決速度問題,本文主要介紹了springboot集成gzip和zip數(shù)據(jù)壓縮傳輸,具有一定的參考價值,感興趣的可以了解一下2023-09-09java利用CompletionService保證任務(wù)先完成先獲取到執(zhí)行結(jié)果
這篇文章主要為大家詳細(xì)介紹了java如何利用CompletionService來保證任務(wù)先完成先獲取到執(zhí)行結(jié)果,文中的示例代碼講解詳細(xì),需要的可以參考下2023-08-08使用Java編寫導(dǎo)出不確定行數(shù)列數(shù)數(shù)據(jù)的工具類
這篇文章主要為大家詳細(xì)介紹了如何使用Java編寫導(dǎo)出不確定行數(shù)列數(shù)數(shù)據(jù)的工具類,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03