摘要:最近時(shí)間在做的項(xiàng)目中需要用到前端上傳服務(wù)器第一次做文件上傳的服務(wù)器端查了各種資料踩了各種坑記錄一下最終的實(shí)現(xiàn)方式一服務(wù)器端服務(wù)器端使用的是框架文件實(shí)現(xiàn)邏輯獲取用戶上傳的文件將文件保存到文件夾保存成功后將文件的索引存入數(shù)據(jù)庫獲取用戶上傳的文件
最近時(shí)間在做的項(xiàng)目中需要用到Android前端上傳服務(wù)器,第一次做文件上傳的服務(wù)器端,查了各種資料,踩了各種坑,記錄一下最終的實(shí)現(xiàn)方式 **一.服務(wù)器端** 服務(wù)器端使用的是ssh框架,文件實(shí)現(xiàn)邏輯: 1.獲取用戶上傳的文件 2.將文件保存到文件夾 3.保存成功后將文件的索引存入數(shù)據(jù)庫, 1.獲取用戶上傳的文件 完整action如下:
public class UploadAction extends ActionSupport implements ModelDriven, ServletResponseAware, ServletRequestAware { private HttpServletResponse response; private HttpServletRequest request; //*********重點(diǎn)****** // 多文件上傳的文件key,相當(dāng)于獲取 request.getParameter(key) //如果傳入的key不對,上傳的文件為空,報(bào)空指針異常, private List file; private List fileFileName; private List fileContentType; private List dataUrl; public void setDataUrl(List dataUrl) { this.dataUrl = dataUrl; } public List getFile() { return file; } public void setFile(List file) { this.file = file; } public List getFileFileName() { return fileFileName; } public void setFileFileName(List fileFileName) { this.fileFileName = fileFileName; } public List getFileContentType() { return fileContentType; } public void setFileContentType(List fileContentType) { this.fileContentType = fileContentType; } private QualityBean bean = new QualityBean(); public void setBean(QualityBean bean) { this.bean = bean; } public String upload() throws Exception { dataUrl = new ArrayList (); String imgpath = "D:/loadtest"; System.out.println("file-size" + file.size()); if (file != null) { for (int i = 0; i < file.size(); ++i) { InputStream is = new FileInputStream(file.get(i)); dataUrl.add(imgpath + this.getFileFileName().get(i)); File destFile = new File(imgpath, this.getFileFileName().get(i)); OutputStream os = new FileOutputStream(destFile); byte[] buffer = new byte[400]; int length = 0; while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } is.close(); os.close(); //往數(shù)據(jù)庫添加--略 //返回?cái)?shù)據(jù),真實(shí)項(xiàng)目中返回自己邏輯判斷 BooleanBean bean = new BooleanBean(); bean.setUpdate(true); DataUtils.writeBeanDate(response, bean); } } return null; } @Override public void setServletRequest(HttpServletRequest httpServletRequest) { this.request = httpServletRequest; } @Override public void setServletResponse(HttpServletResponse httpServletResponse) { this.response = httpServletResponse; } @Override public QualityBean getModel() { return bean; } }
structs.xml配置如下
upload 104857600
如果報(bào)錯(cuò)如下,則是上傳文件超過設(shè)置的大小,
**二.Android 端代碼實(shí)現(xiàn)**
final Listlist = new ArrayList<>(); list.add("/storage/emulated/0/Boohee/1565153408424.jpg"); list.add("/storage/emulated/0/Boohee/1564797245581.jpg"); submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Map params = new HashMap<>(); RequestBody pictureNameBody = RequestBody.create(MediaType.parse("multipart/form-data"), "file"); for (String str : list) { File picture = new File(str); RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), picture); params.put("file"; filename="" + picture.getName() + "", requestFile); } mvpPresenter.submit("韶關(guān)1店",pictureNameBody, params); } });
上面file作為文件上傳的key,兩端必須保持一致
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/75987.html
摘要:發(fā)布應(yīng)用市場的平臺搶紅包工具紅包精靈開源啦掘金紅包精靈,如果喜歡,點(diǎn)個(gè)開源不易。作者將原素材文章進(jìn)行了新內(nèi)容的添加和重新排列,但是因?yàn)槲恼赂咝У拇a編寫技巧總結(jié)前端掘金本文總結(jié)了代碼編寫技巧,來提升你的和代碼。 收藏安卓開發(fā)中非常實(shí)用優(yōu)秀的庫! 有圖有真相! - Android - 掘金本來是打算收藏工具類的,但轉(zhuǎn)念一想,已經(jīng)有這么多優(yōu)秀的庫了,就沒必要再去重復(fù)造輪子了,便歸納工作中比...
摘要:后續(xù)過了幾天,公司購置了幾臺全新的測試機(jī),測試同學(xué)將系統(tǒng)在一臺三星的機(jī)子上一測,又發(fā)現(xiàn)新問題了選擇完圖片進(jìn)行本地預(yù)覽時(shí),發(fā)現(xiàn)圖片翻轉(zhuǎn)了但上傳后再展示又是正常的。 最近在處理移動端選擇圖片實(shí)時(shí)預(yù)覽并上傳時(shí)遇到一個(gè)問題:上傳前圖片預(yù)覽正常,但上傳到服務(wù)器上的圖片展示到頁面上時(shí),有時(shí)會出現(xiàn)圖片翻轉(zhuǎn)的問題,一般是翻轉(zhuǎn) 90 度。后經(jīng)一翻研究找到了問題所在,特在此記錄一下。 問題描述 接上面提到...
閱讀 1260·2021-11-23 09:51
閱讀 1627·2021-11-16 11:45
閱讀 4013·2021-10-09 09:43
閱讀 2681·2021-07-22 16:47
閱讀 944·2019-08-27 10:55
閱讀 3449·2019-08-26 17:40
閱讀 3083·2019-08-26 11:39
閱讀 3228·2019-08-23 18:39