android上传文件用哪个布局,android上传文件

1.Android端:

1.1 布局文件:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello" />

android:id="@+id/mTextView1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello" />

android:id="@+id/mTextView2"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello" />

android:id="@+id/mButton1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello" />

1.2 Activity:

package org.yang.android.upload;

import java.io.File;

import android.app.Activity;

import android.os.Bundle;

import android.os.Environment;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

public class AndroidUploadFileActivity extends Activity

{

private String newName = "linux.jpg";

// 要上传的本地文件路径

private String uploadFile = Environment.getExternalStorageDirectory()

+ "/image/psb.jpg";

// 上传到服务器的指定位置

private String actionUrl = "http://172.17.151.54:8090/FinalProject/jsp/androidUploadFile";

private TextView mTextView1;

private TextView mTextView2;

private Button mButton1;

File file = new File(uploadFile);

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

if ( file.exists() )

{

System.out.println("FILE IS EXISTS!!");

}

else

{

System.out.println("FILE IS NOT EXISTS!!");

}

System.out.println("uploadFile is " + uploadFile);

mTextView1 = (TextView) findViewById(R.id.mTextView1);

mTextView1.setText("FilePath:/n" + uploadFile);

mTextView2 = (TextView) findViewById(R.id.mTextView2);

mTextView2.setText("UploadPath:/n" + actionUrl);

/* 设定mButton的onClick事件处理 */

mButton1 = (Button) findViewById(R.id.mButton1);

mButton1.setOnClickListener(new View.OnClickListener()

{

public void onClick(View v)

{

FileUplaodUtil.uploadFile(AndroidUploadFileActivity.this.file, actionUrl);

}

});

}

}

1.2 FileUploadUtil.java文件:

package org.yang.android.upload;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.UUID;

import android.util.Log;

/**

*

* 上传工具类

*

* @author spring sky Email:vipa1888@163.com QQ:840950105 MyName:石明政

*/

public class FileUplaodUtil

{

private static final String TAG = "uploadFile";

private static final int TIME_OUT = 10 * 1000; // 超时时间

private static final String CHARSET = "utf-8"; // 设置编码

/**

* android上传文件到服务器

*

* @param file

* 需要上传的文件

* @param RequestURL

* 请求的rul

* @return 返回响应的内容

*/

public static String uploadFile(File file, String RequestURL)

{

String result = null;

String BOUNDARY = UUID.randomUUID().toString(); // 边界标识 随机生成

String PREFIX = "--", LINE_END = "\r\n";

String CONTENT_TYPE = "multipart/form-data"; // 内容类型

try

{

URL url = new URL(RequestURL);

HttpURLConnection conn = (HttpURLConnection) url

.openConnection();

conn.setReadTimeout(TIME_OUT);

conn.setConnectTimeout(TIME_OUT);

conn.setDoInput(true); // 允许输入流

conn.setDoOutput(true); // 允许输出流

conn.setUseCaches(false); // 不允许使用缓存

conn.setRequestMethod("POST"); // 请求方式

conn.setRequestProperty("Charset", CHARSET); // 设置编码

conn.setRequestProperty("connection", "keep-alive");

conn.setRequestProperty("Content-Type", CONTENT_TYPE

+ ";boundary=" + BOUNDARY);

if (file != null)

{

/**

* 当文件不为空,把文件包装并且上传

*/

DataOutputStream dos = new DataOutputStream(

conn.getOutputStream());

StringBuffer sb = new StringBuffer();

sb.append(PREFIX);

sb.append(BOUNDARY);

sb.append(LINE_END);

/**

* 这里重点注意: name里面的值为服务器端需要key 只有这个key 才可以得到对应的文件

* filename是文件的名字,包含后缀名的 比如:abc.png

*/

sb.append("Content-Disposition: form-data; name=\"uploaded\"; filename=\""

+ file.getName()

+ "\""

+ LINE_END);

sb.append("Content-Type: application/octet-stream; charset="

+ CHARSET + LINE_END);

sb.append(LINE_END);

dos.write(sb.toString().getBytes());

InputStream is = new FileInputStream(file);

byte[] bytes = new byte[1024];

int len = 0;

while ((len = is.read(bytes)) != -1)

{

dos.write(bytes, 0, len);

}

is.close();

dos.write(LINE_END.getBytes());

byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINE_END)

.getBytes();

dos.write(end_data);

dos.flush();

/**

* 获取响应码 200=成功 当响应成功,获取响应的流

*/

int res = conn.getResponseCode();

Log.e(TAG, "response code:" + res);

// if(res==200)

// {

Log.e(TAG, "request success");

InputStream input = conn.getInputStream();

StringBuffer sb1 = new StringBuffer();

int ss;

while ((ss = input.read()) != -1)

{

sb1.append((char) ss);

}

result = sb1.toString();

Log.e(TAG, "result : " + result);

// }

// else{

// Log.e(TAG, "request error");

// }

}

} catch (MalformedURLException e)

{

e.printStackTrace();

} catch (IOException e)

{

e.printStackTrace();

}

return result;

}

}

2.服务器端:

package org.android.action.file;

import java.io.File;

import org.android.tool.UploadFileTool;

import org.apache.commons.io.FileUtils;

import com.opensymphony.xwork2.ActionSupport;

public class UploadFileAction extends ActionSupport

{

private static final long serialVersionUID = 1L;

private int result;

private String msg;

private String uploadedFileName;

private File uploaded;

public int getResult()

{

return result;

}

public void setResult(int result)

{

this.result = result;

}

public String getMsg()

{

return msg;

}

public void setMsg(String msg)

{

this.msg = msg;

}

public String getUploadedFileName()

{

return uploadedFileName;

}

public void setUploadedFileName(String uploadedFileName)

{

this.uploadedFileName = uploadedFileName;

}

public File getUploaded()

{

return uploaded;

}

public void setUploaded(File uploaded)

{

this.uploaded = uploaded;

}

// --------------------------------------Method--------------------------------------------------//

public void receiveFile() throws Exception

{

File f = new File("e:\\" + getUploadedFileName());

System.out.println("e:\\" + getUploadedFileName());

FileUtils.copyFile(getUploaded(), f);

System.out.println("UPLOAD SUCCESS!!!!!! + Java Web");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值