java怎么上传文件到web服务器_Java客户端通过Http发送POST请求上传文件到web服务器...

http://www.cnblogs.com/WilliamJiang/archive/2012/04/29/2475883.html

1.朋友的一个需求,让我给他实现,需求是这样的,需要用ASP.net写一个页面负责处理客户端上传的文件,并根据传递的参数把文件保存到相应的目录。客户端是手机应用程序,因为没学过Android,所以我只是写了一个Java的Demo用来上传文件。

服务端:

48304ba5e6f9fe08f3fa1abda7d326ab.png

public partial class _Default : System.Web.UI.Page

{

private string id = "";

private string userName = "";

private string type = "";

private string fileName = "";

//文件长度

private long contentLength = 0;

private static readonly string filePath = ConfigurationManager.AppSettings["filePath"];

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

id = Request["id"];

userName = Request["user"];

type = Request["type"];

fileName = Request.Headers["FileName"];

writeFile();

}

}

///

/// 上传文件

///

private void writeFile()

{

try

{

Stream stream = Request.InputStream;

contentLength = stream.Length;

string currentFilePath = filePath + userName;

if (!Directory.Exists(currentFilePath))

{

Directory.CreateDirectory(currentFilePath);

}

FileStream fileStream = File.Create(currentFilePath + @"\" + fileName);

//每次读取的1024个字节

byte[] bytes = new byte[1024];

int numReadByte = 0;

while ((numReadByte = stream.Read(bytes, 0, 1024)) != 0)

{

fileStream.Write(bytes, 0,numReadByte);

}

//关闭流

stream.Close();

fileStream.Close();

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

Java文件上传客户端示例,(几年没搞java有点生疏了):

48304ba5e6f9fe08f3fa1abda7d326ab.png

import java.io.BufferedOutputStream;

import java.io.DataInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.net.HttpURLConnection;

import java.net.URL;

/**

*

* 只是写的一个示例,filePath,和FileName根据需要进行调整。

*/

public class MyTest {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

String str="http://localhost:2906/Default.aspx?id=1&user=2&type=3";

String filePath="D:\\Wildlife.wmv";

String fileName="Wildlife.wmv";

try {

URL url=new URL(str);

HttpURLConnection connection=(HttpURLConnection)url.openConnection();

connection.setDoInput(true);

connection.setDoOutput(true);

connection.setRequestMethod("POST");

connection.addRequestProperty("FileName", fileName);

connection.setRequestProperty("content-type", "text/html");

BufferedOutputStream out=new BufferedOutputStream(connection.getOutputStream());

//读取文件上传到服务器

File file=new File(filePath);

FileInputStream fileInputStream=new FileInputStream(file);

byte[]bytes=new byte[1024];

int numReadByte=0;

while((numReadByte=fileInputStream.read(bytes,0,1024))>0)

{

out.write(bytes, 0, numReadByte);

}

out.flush();

fileInputStream.close();

//读取URLConnection的响应

DataInputStream in=new DataInputStream(connection.getInputStream());

} catch (Exception e) {

e.printStackTrace();

}

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值