Android 实现文件上传功能(upload)

文件上传在B/S应用中是一种十分常见的功能,那么在Android平台下是否可以实现像B/S那样的文件上传功能呢?答案是肯定的。下面是一个模拟网站程序上传文件的例子。这里只写出了Android部分的代码,服务器的代码没有贴出来,有需要完整上传功能代码的朋友可以跟我联系哟

首先新建一个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);

    /* 设定mButtononClick事件处理 */

    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();

      /* 允许InputOutput,不使用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; "

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzyzxp.html