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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 上传图片到服务器Tomcat(Struts2)

發布時間:2025/7/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 上传图片到服务器Tomcat(Struts2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在做android開發的時候,有時你會用到圖片的上傳功能,在我的android項目中,我是選中圖片,點擊上傳多張圖片

android客戶端上傳圖片部分的代碼如下:

package com.example.myphotos.utils;import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.UUID;import android.util.Log;public class UploadUtil {private static final String TAG = "uploadFile";private static final int TIME_OUT = 10 * 1000; // 超時時間private static final String CHARSET = "utf-8"; // 設置編碼/*** 上傳文件到服務器* * @param file* 需要上傳的文件* @param RequestURL* 請求的rul* @return 返回響應的內容*/public static int uploadFile(File file, String RequestURL) {int res = 0;String result = null;String BOUNDARY = UUID.randomUUID().toString(); // 邊界標識 隨機生成String PREFIX = "--", LINE_END = "\r\n";String CONTENT_TYPE = "multipart/form-data"; // 內容類型try {URL url = new URL(RequestURL);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setReadTimeout(TIME_OUT);conn.setConnectTimeout(TIME_OUT);conn.setDoInput(true); // 允許輸入流conn.setDoOutput(true); // 允許輸出流conn.setUseCaches(false); // 不允許使用緩存conn.setRequestMethod("POST"); // 請求方式conn.setRequestProperty("Charset", CHARSET); // 設置編碼conn.setRequestProperty("connection", "keep-alive");conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary="+ BOUNDARY);if (file != null) {/*** 當文件不為空時執行上傳*/DataOutputStream dos = new DataOutputStream(conn.getOutputStream());StringBuffer sb = new StringBuffer();sb.append(PREFIX);sb.append(BOUNDARY);sb.append(LINE_END);/*** 這里重點注意: name里面的值為服務器端需要key 只有這個key 才可以得到對應的文件* filename是文件的名字,包含后綴名*/sb.append("Content-Disposition: form-data; name=\"file\"; filename=\""+ file.getName() + "\"" + LINE_END);sb.append("Content-Type: application/octet-stream; charset="+ CHARSET + LINE_END);sb.append(LINE_END);dos.write(sb.toString().getBytes());InputStream is = new FileInputStream(file);byte[] bytes = new byte[1024];int len = 0;while ((len = is.read(bytes)) != -1) {dos.write(bytes, 0, len);}is.close();dos.write(LINE_END.getBytes());byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINE_END).getBytes();dos.write(end_data);dos.flush();/*** 獲取響應碼 200=成功 當響應成功,獲取響應的流*/res = conn.getResponseCode();Log.e(TAG, "response code:" + res);if (res == 200) {Log.e(TAG, "request success");InputStream input = conn.getInputStream();StringBuffer sb1 = new StringBuffer();int ss;while ((ss = input.read()) != -1) {sb1.append((char) ss);}result = sb1.toString();Log.e(TAG, "result : " + result);} else {Log.e(TAG, "request error");}}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return res;} }

服務器段的代碼如下:

服務器端用的Struts2

package www.csdn.image;import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Random;import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest;import org.apache.commons.fileupload.DiskFileUpload; import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport;/*** ImagesAction 2013-6-18 下午9:02:58** @author 喬曉松**/ public class ImagesAction extends ActionSupport {/****/private static final long serialVersionUID = 1L;public List<String> list = new ArrayList<String>();private File file;private String fileContentType;private String fileFileName;public File getFile() {return file;}public void setFile(File file) {this.file = file;}public String getFileContentType() {return fileContentType;}public void setFileContentType(String fileContentType) {this.fileContentType = fileContentType;}public String getFileFileName() {return fileFileName;}public void setFileFileName(String fileFileName) {this.fileFileName = fileFileName;}public List<String> getList() {return list;}public String httpAllImages() {String path = ServletActionContext.getServletContext().getRealPath("images");// System.out.println(path);File filePath = new File(path);File[] files = filePath.listFiles();for (int i = 0; i < files.length; i++) {File file = files[i];if (!file.isDirectory()) {String fileName = file.getName();String img = fileName.substring(fileName.lastIndexOf(".") + 1);if ("jpg".equals(img) || "jpeg".equals(img)|| "gif".equals(img) || "png".equals(img)) {list.add(fileName);}}}System.out.println(list.size());return "images";}@SuppressWarnings("deprecation")public String uploadFile() {System.out.println("-----------------");System.out.println(fileFileName + "------------------" + file.length());try {FileInputStream fis = new FileInputStream(file);String photospath = ServletActionContext.getRequest().getRealPath("photos");System.out.println(photospath);File fs = new File(photospath, fileFileName);FileOutputStream fos = new FileOutputStream(fs);int len = 0;byte[] buffer = new byte[1024];while ((len = fis.read(buffer)) != -1) {fos.write(buffer, 0, len);}fos.flush();fos.close();fis.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return "uploadfile";} <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"> <struts><include file="struts-constant.xml"></include><package name="test" namespace="/csdn" extends="json-default"><action name="ImagesAction_*" class="www.csdn.image.ImagesAction"method="{1}"><result name="images" type="json">list</result><result name="uploadfile"></result></action></package> </struts>

?圖片上傳:http://topmanopensource.iteye.com/blog/1605238(有例子)。

      http://blog.csdn.net/lmj623565791/article/details/23781773

轉載于:https://www.cnblogs.com/zhujiabin/p/4458423.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的android 上传图片到服务器Tomcat(Struts2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91精品国产色综合久久不卡蜜臀 | 嫩草视屏 | 日韩av中文在线 | 欧美 国产 精品 | 日本国产在线观看 | 黄色大网站 | 男女爽爽爽 | 亚洲激情黄色 | 国产日韩av在线播放 | 亚洲成人精品在线播放 | 人操人 | 无码精品黑人一区二区三区 | 台湾chinesehdxxxx少妇 | 久久久久亚洲精品国产 | 99色亚洲| 久操av| 国产真实老熟女无套内射 | 高潮毛片无遮挡高清免费 | 写真福利片hd在线播放 | 国产成人精品影视 | 欧洲精品视频在线 | 他趴在我两腿中间添得好爽在线看 | 水果派解说av | 成人黄色a| 久国久产久精永久网页 | 91网站免费 | 午夜在线观看视频网站 | 亚洲美女视频网站 | 91在线色| 国产视频四区 | 亚洲男女在线观看 | 中文字幕33页 | 欧美 日韩 国产精品 | 欧美大浪妇猛交饥渴大叫 | 欧美女优一区二区 | 国产成人久久精品流白浆 | 国产白袜脚足j棉袜在线观看 | 91精品啪在线观看国产线免费 | 亚洲国产无线乱码在线观看 | 四虎免费观看 | 国产一区二区色 | av天天色 | 天天天天天天天天干 | 超碰在线观看av | 欧美精品一级二级 | 亚洲免费网站在线观看 | 中文字幕一区二区精品 | 日韩在线视频免费播放 | 国产高清一 | 樱花视频在线免费观看 | 一级做a视频 | 欧美性爱视频久久 | 日韩福利 | 狠狠婷 | 亚洲乱码精品久久久久.. | 成人xxxxx| 亚洲熟女一区二区 | 国产一级做a爰片在线看免费 | 大尺度激情吻胸视频 | 国产白丝袜美女久久久久 | 亚洲欧洲在线播放 | 五号特工组之偷天换月 | 在线观看欧美一区 | 一区二区三区av | 国产精品一二三四五区 | 在线观看免费高清 | 欧美a∨亚洲欧美亚洲 | 99精品视频免费版的特色功能 | 我要看免费的毛片 | 精品久久久久久久久久久久久久久 | 中文字字幕在线观看 | 男女爱爱动态图 | 欧美性极品少妇xxxx | 久久三级网 | 亚洲不卡电影 | 男人添女人下部高潮全视频 | 朱竹清到爽高潮痉挛 | 亚洲男人天堂2017 | 中文字幕精 | 欧美黄色大片免费观看 | 欧美高清视频一区 | 欧美特级aaa| 日本在线观看中文字幕 | 国产成人综合精品 | 在线免费黄网 | 碰碰97 | 超碰首页 | 久久永久免费 | 日本不卡视频在线 | 午夜爱爱网 | 久久99精品久久久久久噜噜 | 麻豆亚洲av熟女国产一区二 | 天天射狠狠干 | 午夜免费播放观看在线视频 | 欧美激情xxx | 草草影院在线播放 | 99riav国产在线观看 | 精品中文字幕在线 | 欧美一区二区三区小说 |