成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

android通過servlet服務器保存文件到手機

瀏覽:88日期:2022-09-23 15:58:33

本文實例為大家分享了android通過servlet服務器保存文件到手機的具體代碼,供大家參考,具體內容如下

服務器端:(手機和電腦連接的同一個WIFI)

package com; import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import sun.misc.BASE64Encoder; public class download extends HttpServlet { /** * Constructor of the object. */ public download() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts 'destroy' string in log // Put your code here } /** * The doGet method of the servlet. <br> * * This method is called when a form has its tag value method equals to get. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // response.setContentType('text/html');// PrintWriter out = response.getWriter();// out.println('<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>');// out.println('<HTML>');// out.println(' <HEAD><TITLE>A Servlet</TITLE></HEAD>');// out.println(' <BODY>');// out.print(' This is ');// out.print(this.getClass());// out.println(', using the GET method');// out.println(' </BODY>');// out.println('</HTML>');// out.flush();// out.close(); doPost(request, response); } /** * The doPost method of the servlet. <br> * * This method is called when a form has its tag value method equals to post. * * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType('text/html'); //request.setCharacterEncoding('utf-8');////這句至關重要,不然中文的文件名稱顯示亂碼 PrintWriter out = response.getWriter();// out.println('<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>');// out.println('<HTML>');// out.println(' <HEAD><TITLE>A Servlet</TITLE></HEAD>');// out.println(' <BODY>');// out.print(' This is ');// out.print(this.getClass());// out.println(', using the POST method');// out.println(' </BODY>');// out.println('</HTML>'); out.print(GetImageStr());///輸出文件的字符串 out.flush(); out.close(); } /** * Initialization of the servlet. <br> * * @throws ServletException if an error occurs */ public void init() throws ServletException { // Put your code here } public static String GetImageStr() {//將圖片文件轉化為字節數組字符串,并對其進行Base64編碼處理 // String imgFile = 'd://test.jpg';//待處理的圖片 //String imgFile='F://upload//1.jpg';////可以 // String imgFile='F://upload//軟工大作業.ppt';////可以 String imgFile='F://upload//愛的勇氣.mp3';//不可以 // String imgFile='F://upload//upload.rar';//可以 InputStream in = null; byte[] data = null; //讀取圖片字節數組 try { in = new FileInputStream(imgFile); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } //對字節數組Base64編碼 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data);//返回Base64編碼過的字節數組字符串 } ///GetImageStr }

手機端:

package com.example.getfile_2; import java.io.FileOutputStream;import java.io.OutputStream; import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.util.EntityUtils; import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button; public class MainActivity extends Activity { private static final int REQUEST_TIMEOUT = 5 * 1000;// 設置請求超時10秒鐘 private static final int SO_TIMEOUT = 10*60 * 1000; // 設置請求超時時間10秒鐘 private static final int LOGIN_OK = 1; private Button button1, button2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1 = (Button) findViewById(R.id.button1); button2 = (Button) findViewById(R.id.button2); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自動生成的方法存根 Log.i('button1', 'button1'); fun_HttpPost(); } }); } public void fun_HttpPost() { new Thread(new Runnable() { @Override public void run() { // TODO 自動生成的方法存根 String urlStr = 'http://192.168.0.102:8080/download/servlet/download'; HttpPost request = new HttpPost(urlStr); try { HttpClient client = getHttpClient(); // 執行請求返回相應 HttpResponse response = client.execute(request); // 判斷是否請求成功 if (response.getStatusLine().getStatusCode() == 200) { // 獲得響應信息 String responseMessage = EntityUtils.toString(response .getEntity()); Log.i('responseMessage', responseMessage + ',長度:' + responseMessage.length()); GenerateImage(responseMessage); Log.i('生成成功', '生成成功'); } } catch (Exception e) { e.printStackTrace(); } }// //run() }).start(); }// /fun_register() //base64字符串轉化成圖片 public static boolean GenerateImage(String imgStr) { //對字節數組字符串進行Base64解碼并生成圖片 if (imgStr == null) //圖像數據為空 return false; Decoder.BASE64Decoder decoder = new Decoder.BASE64Decoder(); try { //Base64解碼 byte[] b = decoder.decodeBuffer(imgStr); for(int i=0;i<b.length;++i) { if(b[i]<0) {//調整異常數據 b[i]+=256; } } //生成jpeg圖片 // String imgFilePath = 'd://222.jpg';//新生成的圖片 // String imgFilePath = 'F://upload//1_2.jpg';///可以 //String imgFilePath = 'F://upload//軟工大作業_2.ppt';//可以// String imgFilePath='F://upload//upload_2.rar'; // String imgFilePath='/sdcard/1spray/1_2.jpg';//可以 // String imgFilePath = '/sdcard/1spray/軟工大作業_2.ppt';//可以 String imgFilePath ='/sdcard/1spray/愛的勇氣_2.mp3';//9M不行了????? OutputStream out = new FileOutputStream(imgFilePath); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } } // 初始化HttpClient,并設置超時 public HttpClient getHttpClient() { BasicHttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, REQUEST_TIMEOUT); HttpConnectionParams.setSoTimeout(httpParams, SO_TIMEOUT); HttpClient client = new DefaultHttpClient(httpParams); return client; }// /public HttpClient getHttpClient()}

<RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' tools:context='${relativePackage}.${activityClass}' > <TextView android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:text='@string/hello_world' /> <Button android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_below='@+id/textView1' android:layout_marginLeft='25dp' android:layout_marginTop='142dp' android:layout_toRightOf='@+id/textView1' android:text='ButtonPost' /> <Button android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_alignLeft='@+id/button1' android:layout_below='@+id/button1' android:layout_marginTop='34dp' android:text='ButtonGet' /> </RelativeLayout>

<?xml version='1.0' encoding='utf-8'?><manifest xmlns:android='http://schemas.android.com/apk/res/android' package='com.example.getfile_2' android:versionCode='1' android:versionName='1.0' > <uses-sdk android:minSdkVersion='15' android:targetSdkVersion='16' /> <!-- 使用網絡功能所需權限 --> <uses-permission android:name='android.permission.ACCESS_NETWORK_STATE' /> <uses-permission android:name='android.permission.INTERNET' /> <uses-permission android:name='android.permission.ACCESS_WIFI_STATE' /> <uses-permission android:name='android.permission.CHANGE_WIFI_STATE' /> <!-- SDK離線地圖和cache功能需要讀寫外部存儲器 --> <uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE' /> <uses-permission android:name='android.permission.MOUNT_UNMOUNT_FILESYSTEMS' /> <application android:allowBackup='true' android:icon='@drawable/ic_launcher' android:label='@string/app_name' android:theme='@style/AppTheme' > <activity android:name='.MainActivity' android:label='@string/app_name' > <intent-filter> <action android:name='android.intent.action.MAIN' /> <category android:name='android.intent.category.LAUNCHER' /> </intent-filter> </activity> </application></manifest>

android通過servlet服務器保存文件到手機

android通過servlet服務器保存文件到手機

android通過servlet服務器保存文件到手機

android通過servlet服務器保存文件到手機

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
3751色影院一区二区三区| 日本欧美加勒比视频| 韩日精品视频一区| 国内不卡一区二区三区| 91精品国产91久久久久久最新毛片| 国产精品伦理在线| 91在线视频免费观看| 欧美精品色一区二区三区| 亚洲图片欧美综合| 亚洲精品一级| 国产精品视频免费| 91免费观看国产| 精品国产一区二区三区久久久蜜月 | 免费三级欧美电影| 国产精品久久久久久久久婷婷| 久久一日本道色综合| 成人午夜免费视频| 欧美裸体一区二区三区| 五月激情综合婷婷| 亚洲女同在线| 亚洲国产精品一区二区www| 在线精品在线| 中文字幕的久久| 黄色日韩精品| 亚洲视频免费看| 亚洲一二三区精品| 国产精品欧美久久久久一区二区| 91麻豆.com| 日本一区二区三区视频视频| av电影一区二区| 精品国产乱码久久久久久久| 粉嫩高潮美女一区二区三区| 欧美精品久久99| 成人网页在线观看| 日韩欧美一卡二卡| 岛国av在线一区| 精品国产凹凸成av人导航| 成人国产精品免费网站| 久久久高清一区二区三区| 午夜视频精品| 亚洲靠逼com| 亚洲欧美日韩另类精品一区二区三区| 亚洲国产cao| 欧美日韩中文国产| 在线观看视频欧美| 久久久久久久久99精品| 国产在线一区二区| 欧美大片免费久久精品三p| 亚洲成人www| av欧美精品.com| 欧美高清hd18日本| 成人免费av资源| 91成人国产精品| 九九九精品视频| 狠狠入ady亚洲精品| 亚洲国产高清aⅴ视频| 91麻豆成人久久精品二区三区| 337p粉嫩大胆噜噜噜噜噜91av | 亚洲一区二区三区四区的| 可以看av的网站久久看| 国产乱人伦偷精品视频不卡| 国产丝袜欧美中文另类| 99pao成人国产永久免费视频| 午夜精品一区二区三区电影天堂| 欧美福利视频导航| 国内精品久久久久久久影视麻豆 | 在线欧美不卡| 美女视频网站久久| 精品国产一区二区亚洲人成毛片| 亚洲精品国产日韩| 狠狠狠色丁香婷婷综合激情| 日韩欧美aaaaaa| 粉嫩高潮美女一区二区三区| 国产精品的网站| 色噜噜久久综合| 成人动漫一区二区在线| 亚洲精品久久久蜜桃| 一本到高清视频免费精品| 毛片av一区二区| 久久九九99视频| 日韩电影免费在线| 精品久久久久99| 99re这里只有精品6| 午夜伦欧美伦电影理论片| 91福利在线播放| 午夜精品久久99蜜桃的功能介绍| 国产精品丝袜在线| av一区二区三区在线| 亚洲成人你懂的| 欧美精品色综合| 国产精品久久久一区二区| 久久精品二区亚洲w码| 欧美性xxxxxxxx| 亚洲麻豆一区| 麻豆国产精品视频| 亚洲欧洲av一区二区三区久久| 久久不射网站| 中文字幕国产精品一区二区| 91精彩视频在线| 99麻豆久久久国产精品免费| 蜜臂av日日欢夜夜爽一区| 日韩欧美在线综合网| 99久久精品一区| 亚洲一区二区三区四区在线观看| 在线观看免费亚洲| 欧美久久一级| 亚洲亚洲精品在线观看| 国产欧美日韩视频在线观看| 一区二区精品国产| 免费成人美女在线观看.| 亚洲女爱视频在线| 在线一区二区视频| 欧美久久一级| 蜜桃视频免费观看一区| 国产视频一区二区在线观看| 国产一区二区电影| 亚欧色一区w666天堂| www国产精品av| 4438x亚洲最大成人网| 亚洲国产99| 欧美精品二区三区四区免费看视频| 美腿丝袜亚洲三区| 欧美人与z0zoxxxx视频| 日本韩国一区二区三区视频| 99久久国产综合精品女不卡| 国产精品小仙女| 天天影视涩香欲综合网| 91精品久久久久久蜜臀| 亚洲精品乱码久久久久久蜜桃麻豆 | 午夜影院久久久| 亚洲精品成人悠悠色影视| 日韩欧美你懂的| 欧美一区二区三区四区视频| 中文亚洲免费| 九色|91porny| 久久电影国产免费久久电影| 亚洲男女毛片无遮挡| 亚洲欧美另类在线| 久久久久88色偷偷免费| 欧美电视剧在线观看完整版| 在线观看欧美日本| av一区二区久久| 92国产精品观看| 国产在线精品国自产拍免费| 精品一区二区三区视频在线观看| 亚洲一区二区四区蜜桃| 一区二区三区毛片| 国产无遮挡一区二区三区毛片日本| 国产在线日韩| 亚洲精品四区| 欧美人与禽性xxxxx杂性| 国产一区清纯| av男人天堂一区| 欧美性天天影院| 午夜视频一区在线观看| 日韩色视频在线观看| 宅男在线国产精品| 欧美片网站yy| 精品88久久久久88久久久| 欧美精选在线播放| 精品福利视频一区二区三区| 欧美精品在线观看播放| 亚洲欧美日韩视频二区| 日韩午夜免费视频| 免费亚洲电影| 国产一区成人| 国产欧美日韩综合一区在线观看| 国产精品99免费看| 牛夜精品久久久久久久99黑人| 成人av在线一区二区三区| 日av在线不卡| 丁香啪啪综合成人亚洲小说| 国产98色在线|日韩| 欧美日韩国产在线一区| 91麻豆免费在线观看| 国产一区二区三区免费不卡| 一本色道久久综合亚洲精品不| 久久精品综合一区| 欧美中文字幕久久| 久久婷婷影院| 精品1区2区在线观看| 久久影院午夜片一区| 亚洲欧美日韩国产综合| 成人欧美一区二区三区| 久久精品国产第一区二区三区| 麻豆freexxxx性91精品| 91丨porny丨首页| 国产一区激情| 亚洲国产mv| 久久综合影音| 日韩视频免费观看高清完整版在线观看 | 精品久久久三级丝袜| 这里是久久伊人| 欧美电视剧免费全集观看| 久久成人资源| 欧美电视剧免费全集观看| 日本一区二区三区在线不卡| 婷婷激情综合网| 午夜精品久久久久影视| jvid福利写真一区二区三区|