安卓实训第五天---实现文件上传到SD卡

时间:2021-07-30 20:41:40

首先讲了如何将文件上传到SD卡中:

 

package com.example.lesson05_02;

import java.io.File;
import java.io.FileNotFoundException;

import org.apache.http.Header;

import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;

public class MainActivity extends Activity implements OnClickListener{

 private EditText et_file;
 private Button btn_upload;
 private EditText et_username;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  btn_upload = (Button) findViewById(R.id.btn_upload);
  
  et_file = (EditText) findViewById(R.id.et_file);
  et_username = (EditText) findViewById(R.id.edit_username);
  btn_upload.setOnClickListener(this); 
 }
 @Override
 public void onClick(View v) {
  int id =v.getId();
  switch (id) {
  case R.id.btn_upload:
   String path =et_file.getText().toString();
   if(TextUtils.isEmpty(path.trim())){
    Toast.makeText(this, "上传的文件不能为空", Toast.LENGTH_LONG).show();
   }else{
    //异步客户端对象
    AsyncHttpClient client = new AsyncHttpClient();
    String url="http://172.16.237.144:8080/Login/UploadServlet";
    //封装文件上传的参数
    RequestParams params = new RequestParams();
    //根据路径创建文件
    File file = new File(path);
    try {
     //放入文件
     params.put("profile_picture", file);
     //1、修改这个名称,看能否上传成功
     //2、添加上传者的姓名
    } catch (FileNotFoundException e) {
     System.out.println("文件不存在");
     e.printStackTrace();
    }
    client.post(url, params,new AsyncHttpResponseHandler(){

     @Override
     public void onFailure(int statusCode, Header[] headers, byte[] responseBody,
       Throwable error) {
      error.printStackTrace();
     }

     @Override
     public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
      Toast.makeText(MainActivity.this, "文件上传成功!", 1).show();
     }
      
    });
   }
   
   break;

  default:
   break;
  }
  
 }
}


 

然后分别使用AsynvHttpClient 还有smart-image-view来完成图片查看器:

//不适用SMART IMAGE之前:
 

/*
 public void sendGetImg(View v){
  int id= v.getId();
  switch (id) {
  case R.id.btn_img:
   
   String url = et_url.getText().toString();
   //发送网络请求
   AsyncHttpClient client = new AsyncHttpClient();
   
   client.get(url,new AsyncHttpResponseHandler(){

    @Override
    public void onFailure(int statusCode, Header[] headers, byte[] responseBody,
      Throwable errors) {
      errors.printStackTrace();
    }

    @Override
    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
     if(statusCode==200){
      //创建字节工厂对象N
      BitmapFactory bitmapFactory = new BitmapFactory();
      @SuppressWarnings("static-access")
      Bitmap bitmap = bitmapFactory.decodeByteArray(responseBody, 0, responseBody.length);
      iv_img.setImageBitmap(bitmap);
     }
    }
    
   });
   break;

  default:
   break;
  }
 }
 */
 //使用smart image包之后
 public void sendGetImg(View v){
  int id= v.getId();
  switch (id) {
  case R.id.btn_img:
   String url = et_url.getText().toString();
   iv_img.setImageUrl(url, R.drawable.ic_launcher,R.drawable.ic_launcher);
   break;

  default:
   break;
  }
 }