本地:
先看下项目结构
MainActivity.java
package com.huxq.uploadexample;
import java.io.File;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity implements OnUploadListener {
// 服务器路径,换成自己的
private String urlString = "http://192.168.1.2:8080/UploadTest/Upload";
/**
* 上传文件的路径
*/
String filePath;
/**
* 上传的文件名
*/
String fileName;
ProgressDialog dialog;
/**
* 在读取文件流的时候,同一进度会多次回调,通过这个标记,只有在进度更新的情况下才会更新ui 节省资源
*/
int oldProcess;
@SuppressLint("HandlerLeak")
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
Log.i("process", "process" + msg.arg1);
dialog.setProgress(msg.arg1);
// 第一次没有显示dialog的时候显示dialog
if (!dialog.isShowing()) {
Log.i("process", "show");
dialog.show();
} else {
if (msg.arg1 == 100) {// 提示用户上传完成
dialog.dismiss();
toast("上传完成!");
}
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initProgressDialog();
}
public void upLoad(View v) {
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
// toast("上传");
String sdcardPath = Environment.getExternalStorageDirectory()
.getAbsolutePath();
filePath = sdcardPath + "/Abook/";
File file = new File(filePath);
// 这里我选的是Abook文件夹下第五个文件上传,得根据自己的实际情况来,否则肯定出错。
fileName = f