package irdc.ex08_11;
import java.io.BufferedReader;
/* import相关class */
public class EX08_11 extends Activity
{
/*
* 变量声明 filename:上传后在服务器上的文件名称 uploadFile:要上传的文件路径 actionUrl:服务器上对应的程序路径
*/
private String uploadFile = "/sdcard/mp3/FmChannels.txt";
private String srcPath = "/sdcard/mp3/FmChannels.txt";
private String actionUrl = "http://116.207.170.64:8080/FileUpload/updateUserServlet";
private TextView mText1;
private TextView mText2;
private Button mButton;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mText1 = (TextView) findViewById(R.id.myText2);
mText1.setText("文件路径:\n" + uploadFile);
mText2 = (TextView) findViewById(R.id.myText3);
mText2.setText("上传网址:\n" + actionUrl);
/* 设置mButton的onClick事件处理 */
mButton = (Button) findViewById(R.id.myButton);
mButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
uploadFile();
}
});
}
/* 上传文件至Server的方法 */
private void uploadFile()
{
String uploadUrl = actionUrl;
String end = "\r\n";
String twoHyphens = "--";
String boundary = "******";
try
{
URL url = new URL(uploadUrl);
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.setUseCaches(false);
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setRequestProperty("Connection", "Keep-Alive");
httpURLConnection.setRequestProperty("Charset", "UTF-8");
httpURLConnection.setRequestProperty("Content-Type",
"multipart/form-data;boundary=" + boundary);
DataOutputStream dos = new DataOutputStream(httpURLConnection.getOutputStream());
dos.writeBytes(twoHyphens + boundary + end);
dos.writeBytes("Content-Disposition: form-data; name=\"file\"; filename=\""
+ srcPath.substring(srcPath.lastIndexOf("/") + 1)
+ "\"" + end);
dos.writeBytes(end);
//将SD 文件通过输入流读到Java代码中-++++++++++++++++++++++++++++++`````````````````````````
FileInputStream fis = new FileInputStream(srcPath);
byte[] buffer = new byte[8192]; // 8k
int count = 0;
while ((count = fis.read(buffer)) != -1)
{
dos.write(buffer, 0, count);
}
fis.close();
System.out.println("file send to server............");
dos.writeBytes(end);
dos.writeBytes(twoHyphens + boundary + twoHyphens + end);
dos.flush();
//读取服务器返回结果
InputStream is = httpURLConnection.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "utf-8");
BufferedReader br = new BufferedReader(isr);
String result = br.readLine();
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
dos.close();
is.close();
} catch (Exception e)
{
e.printStackTrace();
setTitle(e.getMessage());
}
}
}
分享到:
相关推荐
Android模拟表单提交 多图选择+多图上传Demo 对应博文:Android原生模拟表单提交上传多图+PHP接收表单数据和多图存储:http://blog.csdn.net/iwanghang/article/details/65630703
Android的HttpURLConnections等并不能直接实现表单形式上传文件,必须另类实现。注册时一般是先利用表单上传头像图片得到头像在服务器的地址,再将得到的地址和其它注册信息提交。
android 文件上传含进度条,注释,在eclipse下运行,显示文件上传的进度
Android文件选择器,可以实现多选,单选文件。
Android 文件、文件夹实现客户端和服务器端上传文件。附件中包含客户端和服务器端的代码!
android 通用图片上传,多文件上传,单文件皆可。。
android中模拟http协议表单上传.docx
Android文件上传 下载,实现录音,照片。
Android 多文件上传,表单上传,上传进度显示
android webview上传文件 上传图片 提交图片 包含服务端源码和android端源码
Android端上传文件的jar包
android上利用socket流分段上传大文件
亲测可用,可以与net端和Java端进行文件上传
文件上传
Android 大文件上传 大数据上传 文件上传 Android代码
关于android文件上传以及写入数据库
android文件上传下载源码
文件下载
android——SpringMVC实现批量文件上传 HTTP协议和HttpClient2种方式实现批量上传
Android简单的web提交表单登录,亲测已通过,不想码代码的同学进来