服务器端:(手机和电脑连接的同一个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;@Overrideprotected 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() {@Overridepublic void onClick(View v) {// TODO 自动生成的方法存根Log.i("button1", "button1");fun_HttpPost();}});}public void fun_HttpPost() {new Thread(new Runnable() {@Overridepublic 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:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/hello_world" />    <Button        android:id="@+id/button1"        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:id="@+id/button2"        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服务器保存文件到手机_第1张图片 android通过servlet服务器保存文件到手机_第2张图片

android通过servlet服务器保存文件到手机_第3张图片 android通过servlet服务器保存文件到手机_第4张图片


更多相关文章

  1. android 从webview中读取缓存的图片
  2. android 网络读取图片 带进度条
  3. android 多点触摸 实现图片缩放 Image Zoom
  4. Android应用程序之间共享文字和图片(二)
  5. android中setImageResource加载大图片出现oom解决方案
  6. Android跳转系统相机或相册获取图片
  7. android对大图片的缓存处理
  8. android 根据SD卡中图片路径读取并显示SD中的图片――源代码
  9. Android中多层Fragment嵌套,调用相册返回Uri无法显示图片的问题解

随机推荐

  1. Android中判断是否有声音在播放
  2. Android(安卓)startActivityForResult的
  3. Android(安卓)XML使用
  4. Android(安卓)国际化,文本国际化,图片国
  5. android 获得焦点(View get focus)
  6. 【Android(安卓)系统开发】 Android(安卓
  7. 除去ScrollView拉到尽头时再拉的阴影效果
  8. Qt 5.7.0 (32 bit) 配置 Android(安卓)环
  9. Android(安卓)后台发邮件
  10. ScrollView中添加一个android:fillViewpo