java接收ios文件上傳的示例代碼
本文實(shí)例為大家分享了java如何接收ios文件上傳的具體代碼,供大家參考,具體內(nèi)容如下
ios Multipart/form-data POST請(qǐng)求java后臺(tái)spring接口一直出錯(cuò),搞了兩天,終于解決了,積累下來(lái)
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);// 判斷是否是表單文件類(lèi)型 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); // 寫(xiě)文件 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 添加
<!-- 這個(gè)用于上傳文件工具操作 --> <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
<!-- 配置文件上傳,如果沒(méi)有使用文件上傳可以不用配置,當(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>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- iOS實(shí)現(xiàn)文件上傳功能
- vue使用axios實(shí)現(xiàn)文件上傳進(jìn)度的實(shí)時(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)文件切片儲(chǔ)存并且上傳(仿斷點(diǎn)續(xù)傳機(jī)制)
- vue項(xiàng)目中使用axios上傳圖片等文件操作
- iOS開(kāi)發(fā)中以application/json上傳文件實(shí)例詳解
- Vue axios 中提交表單數(shù)據(jù)(含上傳文件)
- iOS開(kāi)發(fā)中文件的上傳和下載功能的基本實(shí)現(xiàn)
- IOS開(kāi)發(fā)教程之put上傳文件的服務(wù)器的配置及實(shí)例分享
相關(guān)文章
如何利用Java正則表達(dá)式校驗(yàn)密碼規(guī)則
正則表達(dá)式正則表達(dá)式是用來(lái)指定字符串模式的,可以方便的處理文本信息,這篇文章主要給大家介紹了關(guān)于如何利用Java正則表達(dá)式校驗(yàn)密碼規(guī)則的相關(guān)資料,需要的朋友可以參考下2022-09-09Mybatis實(shí)現(xiàn)動(dòng)態(tài)排序方式
這篇文章主要介紹了Mybatis實(shí)現(xiàn)動(dòng)態(tài)排序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10springboot集成gzip和zip數(shù)據(jù)壓縮傳輸(適用大數(shù)據(jù)信息傳輸)
?在大數(shù)據(jù)量的傳輸中,壓縮數(shù)據(jù)后進(jìn)行傳輸可以一定程度的解決速度問(wèn)題,本文主要介紹了springboot集成gzip和zip數(shù)據(jù)壓縮傳輸,具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09IDEA編寫(xiě)JavaWeb出現(xiàn)亂碼問(wèn)題解決方案
這篇文章主要介紹了IDEA編寫(xiě)JavaWeb出現(xiàn)亂碼問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Java中文亂碼解決方案全解析,讓你的程序“說(shuō)人話(huà)”!
探索Java中文亂碼解決方案全解析,讓你的程序終于能“說(shuō)人話(huà)”!厭倦了看著一串串的問(wèn)號(hào)或者奇怪符號(hào)嗎?跟著我們的指南,一步步輕松解鎖中文亂碼的秘密,讓你的代碼清晰表達(dá)每一個(gè)字,需要的朋友可以參考下2024-02-02SpringBoot2入門(mén)自動(dòng)配置原理及源碼分析
這篇文章主要為大家介紹了SpringBoot2入門(mén)自動(dòng)配置原理及源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05java利用CompletionService保證任務(wù)先完成先獲取到執(zhí)行結(jié)果
這篇文章主要為大家詳細(xì)介紹了java如何利用CompletionService來(lái)保證任務(wù)先完成先獲取到執(zhí)行結(jié)果,文中的示例代碼講解詳細(xì),需要的可以參考下2023-08-08使用Java編寫(xiě)導(dǎo)出不確定行數(shù)列數(shù)數(shù)據(jù)的工具類(lèi)
這篇文章主要為大家詳細(xì)介紹了如何使用Java編寫(xiě)導(dǎo)出不確定行數(shù)列數(shù)數(shù)據(jù)的工具類(lèi),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03