日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

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

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

服務器端:(手機和電腦連接的同一個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() {//將圖片文件轉(zhuǎn)化為字節(jié)數(shù)組字符串,并對其進行Base64編碼處理 // String imgFile = 'd://test.jpg';//待處理的圖片 //String imgFile='F://upload//1.jpg';////可以 // String imgFile='F://upload//軟工大作業(yè).ppt';////可以 String imgFile='F://upload//愛的勇氣.mp3';//不可以 // String imgFile='F://upload//upload.rar';//可以 InputStream in = null; byte[] data = null; //讀取圖片字節(jié)數(shù)組 try { in = new FileInputStream(imgFile); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } //對字節(jié)數(shù)組Base64編碼 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data);//返回Base64編碼過的字節(jié)數(shù)組字符串 } ///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(); // 執(zhí)行請求返回相應 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字符串轉(zhuǎn)化成圖片 public static boolean GenerateImage(String imgStr) { //對字節(jié)數(shù)組字符串進行Base64解碼并生成圖片 if (imgStr == null) //圖像數(shù)據(jù)為空 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) {//調(diào)整異常數(shù)據(jù) b[i]+=256; } } //生成jpeg圖片 // String imgFilePath = 'd://222.jpg';//新生成的圖片 // String imgFilePath = 'F://upload//1_2.jpg';///可以 //String imgFilePath = 'F://upload//軟工大作業(yè)_2.ppt';//可以// String imgFilePath='F://upload//upload_2.rar'; // String imgFilePath='/sdcard/1spray/1_2.jpg';//可以 // String imgFilePath = '/sdcard/1spray/軟工大作業(yè)_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' /> <!-- 使用網(wǎng)絡功能所需權限 --> <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服務器保存文件到手機

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

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美gv在线| 欧美日韩黑人| 97精品国产99久久久久久免费| 久久av日韩| 色婷婷精品视频| 亚洲免费精品| 一区二区不卡| 国产精品99久久免费| 99视频精品全部免费在线视频| 欧美成人亚洲| 欧美1区二区| 日本一二区不卡| 久久久免费人体| 丝袜美腿亚洲一区二区图片| 日韩一区二区三区精品| 日韩大片在线| 久久aⅴ国产紧身牛仔裤| 日韩不卡免费高清视频| 中文一区一区三区免费在线观| 99国产精品| 久久久久久久久丰满| 亚洲欧美视频一区二区三区| 欧美偷窥清纯综合图区| 久久麻豆精品| 国产一区二区三区不卡视频网站| 亚洲乱码一区| 久久亚洲国产| 久久久久久色 | 久久影院午夜精品| 国产激情欧美| 亚洲精品少妇| 97精品国产福利一区二区三区| 国产精品九九| 九色精品91| 黄色成人91| 色偷偷色偷偷色偷偷在线视频| 国产亚洲精品美女久久久久久久久久| 国产精品777777在线播放| 成人在线黄色| 香蕉久久一区| 私拍精品福利视频在线一区| 1024精品久久久久久久久| 日韩综合小视频| 麻豆国产欧美日韩综合精品二区| 91久久久精品国产| 久久精品资源| 亚洲尤物av| 日韩三级视频| 亚洲一区二区三区久久久| 国产一区欧美| 日本不卡在线视频| 久久精品99国产精品| 日韩区欧美区| 日韩激情一区二区| 精品99在线| 99久久婷婷| 亚洲精品少妇| 久久不见久久见中文字幕免费 | 欧美精品日日操| 国产精品日本| 电影亚洲精品噜噜在线观看| 成人国产精品久久| 在线一区欧美| 国产麻豆精品久久| 欧美xxxx中国| 好看不卡的中文字幕| 丝袜美腿亚洲色图| 麻豆精品99| 亚欧成人精品| 欧美成人基地 | 天堂成人免费av电影一区| 在线亚洲观看| 国产精品网在线观看| 理论片午夜视频在线观看| 亚洲综合欧美| 日韩伦理一区| 美女少妇全过程你懂的久久| 99视频精品全国免费| 亚洲精品日韩久久| 日本久久成人网| 国产一区调教| 婷婷成人在线| 精品美女视频 | 久久国产欧美日韩精品| 精品日韩在线| 日本久久一区| 欧美日韩一二| 伊人久久视频| 亚洲精品美女| 国产精品88久久久久久| 国产精选在线| 欧美经典一区| 在线一区电影| 麻豆网站免费在线观看| 欧美视频久久| 亚洲最大av| 伊人久久亚洲| 日本综合精品一区| 免费久久99精品国产| 日本午夜大片a在线观看| 国产日韩一区二区三区在线| 国产模特精品视频久久久久| 久久精品播放| 伊人久久婷婷| 成人亚洲欧美| 99精品视频在线观看免费播放| 日本欧美大码aⅴ在线播放| 鲁大师成人一区二区三区| 亚洲免费激情| 国产精品sss在线观看av| 精品91久久久久| 欧美va天堂| 另类国产ts人妖高潮视频| 麻豆9191精品国产| 免费国产自线拍一欧美视频| 欧美成人国产| 日韩一级精品| 日韩高清电影免费| 国产精品99精品一区二区三区∴ | 亚洲综合精品四区| 日韩影院在线观看| 久久的色偷偷| 亚洲一区二区毛片| 亚洲精品激情| 成人精品中文字幕| 亚洲精品影院在线观看| 欧美成人综合| 麻豆91精品91久久久的内涵| 麻豆精品在线视频| 999国产精品永久免费视频app| 久久福利精品| 久久精品免费看| 亚洲黄色影院| 精品国产一区二区三区av片| 国产suv精品一区二区四区视频| 日韩一区二区三区免费播放| 91精品精品| 亚洲一区二区免费在线观看| 激情中国色综合| 日本欧美韩国一区三区| 老牛影视一区二区三区| 久久久久久亚洲精品美女| 综合亚洲视频| 国产一区白浆| 国产亚洲精品久久久久婷婷瑜伽| 国产精品精品| 综合一区av| 欧美午夜精彩| 91欧美在线| 91国内精品| 亚洲欧美日本国产专区一区| 久久人人88| 欧美日韩夜夜| 蜜臀久久99精品久久久久久9| 久久激情综合网| 蜜桃久久久久久| 午夜国产精品视频| 欧美精品国产| 亚洲欧美视频| 午夜欧美精品| 婷婷精品进入| 久久久久久久久久久9不雅视频| 日本一二区不卡| 91精品精品| 蜜桃成人av| 视频精品一区二区| 午夜久久中文| 国产欧美一区二区三区精品酒店| 国产精品3区| 久久久久久久久成人| 久久国际精品| 中文在线中文资源| 蜜桃成人av| 另类av一区二区| 国产精品探花在线观看| 日韩国产在线不卡视频| 国产欧美一区二区精品久久久 | 91欧美日韩在线| 国产一级成人av| 国产精品第一国产精品| 国产毛片一区二区三区| 精品国产精品久久一区免费式| 成人国产精品一区二区网站| 国产精品精品国产一区二区| 亚洲欧美日韩国产一区| 欧美国产中文高清| 男女激情视频一区| 日韩中文视频| 日韩精品免费一区二区在线观看 | 欧美激情另类| 伊人久久在线| 免费看精品久久片| 综合激情网...| 日韩国产欧美在线播放| 国产不卡av一区二区| 国产婷婷精品| 视频福利一区| 精品国产一级| 日韩精品欧美精品| 欧美亚洲tv|