简单实现Android文件上传

文件上传在B/S应用中是一种十分常见的功能,那么在Android平台下是否可以实现像B/S那样的文件上传功能呢?答案是肯定的。下面是一个模拟网站程序上传文件的例子。

首先新建一个Android工程,新建主启动Activity:

MainActivity.java:

package com.xzq.upload; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity{ private String newName = "htys.mp3"; //要上传的本地文件路径 private String uploadFile = "/data/data/com.xzq/htys.mp3"; //上传到服务器的指定位置 private String actionUrl = "http://192.168.100.100:8080/upload/upload.jsp"; private TextView mTextView1; private TextView mTextView2; private Button mButton1; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); mTextView1 = (TextView) findViewById(R.id.myText2); mTextView1.setText("FilePath:/n" + uploadFile); mTextView2 = (TextView) findViewById(R.id.myText3); mTextView2.setText("UploadPath:/n" + actionUrl); /* 设定mButton的onClick事件处理 */ mButton1 = (Button) findViewById(R.id.myButton); mButton1.setOnClickListener(new View.OnClickListener(){ public void onClick(View v){ uploadFile(); } }); } private void uploadFile(){ String end = "/r/n"; String Hyphens = "--"; String boundary = "*****"; try{ URL url = new URL(actionUrl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); /* 允许Input、Output,不使用Cache */ con.setDoInput(true); con.setDoOutput(true); con.setUseCaches(false); /* 设定传送的method=POST */ con.setRequestMethod("POST"); /* setRequestProperty */ con.setRequestProperty("Connection", "Keep-Alive"); con.setRequestProperty("Charset", "UTF-8"); con.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); /* 设定DataOutputStream */ DataOutputStream ds = new DataOutputStream(con.getOutputStream()); ds.writeBytes(Hyphens + boundary + end); ds.writeBytes("Content-Disposition: form-data; " + "name=/"file1/";filename=/"" + newName + "/"" + end); ds.writeBytes(end); /* 取得文件的FileInputStream */ FileInputStream fStream = new FileInputStream(uploadFile); /* 设定每次写入1024bytes */ int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int length = -1; /* 从文件读取数据到缓冲区 */ while ((length = fStream.read(buffer)) != -1){ /* 将数据写入DataOutputStream中 */ ds.write(buffer, 0, length); } ds.writeBytes(end); ds.writeBytes(Hyphens + boundary + Hyphens + end); fStream.close(); ds.flush(); /* 取得Response内容 */ InputStream is = con.getInputStream(); int ch; StringBuffer b = new StringBuffer(); while ((ch = is.read()) != -1){ b.append((char) ch); } System.out.println("上传成功"); Toast.makeText(MainActivity.this, "上传成功", Toast.LENGTH_LONG) .show(); ds.close(); } catch (Exception e){ System.out.println("上传失败" + e.getMessage()); Toast.makeText(MainActivity.this, "上传失败" + e.getMessage(), Toast.LENGTH_LONG).show(); } } }

最后别忘了在AndroidManifest.xml中设置访问Internet的权限:

<uses-permission android:name="android.permission.INTERNET" />

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-09-22 21:45:49

简单实现Android文件上传的相关文章

简单实现Android文件上传_Android

文件上传在B/S应用中是一种十分常见的功能,那么在Android平台下是否可以实现像B/S那样的文件上传功能呢?答案是肯定的.下面是一个模拟网站程序上传文件的例子. 首先新建一个Android工程,新建主启动Activity: MainActivity.java: package com.xzq.upload; import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.InputStream;

ASP.NET实现的简单易用文件上传类

  这篇文章主要介绍了ASP.NET实现的简单易用文件上传类,本文给出实现代码和使用方法示例,需要的朋友可以参考下 调用方法: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 UploadFile uf = new UploadFile();   /*可选参数*/ uf.SetIsUseOldFileName(true);//是否使用原始文件名作为新文件的文件名(默认:true),true原始文件名,false系统生成新文件名

简单的php文件上传简单范例

一个比较简单的php文件上传范例,可用于要求不高的时候,记录到这里,方便以后要用的时候直接过来复制. $resume = $_FILES['resumefile']; if($resume['name']!='') {  $enableType = array('jpg','png','gif','doc','docx','rtf','pdf'); //支持格式  $maxSize = 1024*1024; //最大允许上传1M的文件  $filePath = 'upload/resume/';

android 文件上传问题,使用MultipartEntityBuilder

问题描述 android 文件上传问题,使用MultipartEntityBuilder android端: String BOUNDARY= UUID.randomUUID().toString(); boolean hasModifySuccess=false; String fileName = "contact_0.jpg"; try{ httpClient = new DefaultHttpClient(); post = new HttpPost(path); post.s

超简单的php文件上传程序

 代码如下 复制代码 <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

通过PHP简单实例介绍文件上传_php实例

php文件上传的简单例子,获取文件名称.类型.大小等相关信息,完成文件的上传,供大家学习参考. 1.上传文件的代码: code <?php //判断临时文件存放路径是否包含用户上传的文件 if(is_uploaded_file($_FILES["uploadfile"]["tmp_name"])){ //为了更高效,将信息存放在变量中 $upfile=$_FILES["uploadfile"];//用一个数组类型的字符串存放上传文件的信息

简单的php文件上传。一个文件搞定。

有staff需要临时上传文件作中转,于是就写了个uploads.php 这个来方便他上传下载.   把下面代码另存为uploads.php 然后放在www目录即可     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="

android文件上传示例分享(android图片上传)_Android

主要思路是调用系统文件管理器或者其他媒体采集资源来获取要上传的文件,然后将文件的上传进度实时展示到进度条中. 主Activity 复制代码 代码如下: package com.guotop.elearn.activity.app.yunpan.activity; import java.io.File;import java.io.FileNotFoundException;import java.io.IOException; import android.app.Activity;impor

一个方便简单的php文件上传的类

以前一直用上面的这个文件上传类,发现有很多不方便的地方. 现在自己重新做了一个,大家帮我评评,是不是有什么不足之处. <?php/*  * 文件上传类  * 作    者:多菜鸟 * 联系邮箱:kingerq AT msn DOT com * 创建时间:2005-06-11 * 来 源:http://blog.csdn.net/kingerq *  * 实例:<?$f = new upfile("./soft/", "gif,jpg,png");//上传