趣文网 > 作文大全

Java开发之如何通过HTTP方式传输文件

2020-12-02 04:30:02
相关推荐

平时我们传文件,一般都是通过FTP方式,这是最常用的。偶尔也会用到利用共享目录方式传文件,在我以前的文章中有提供如何借助共享目录传文件。今天我们要说的是通过HTTP方式传文件,首先在接收方需要有一个接收的接口类,用以在触发上传文件后接收文件。下面我们给出HTTP上传类的实例代码

public static int upload(String strURL, File[] allFile) {

int status = 200;

for (int i = 0; i < allFile.length; ++i) {

String localFile = allFile[i].getAbsolutePath();

if (!(allFile[i].exists())) {

continue;

}

long startPos = 0L;

HttpClient headclient = new DefaultHttpClient();

HttpHead httphead = new HttpHead(strURL);

try {

httphead.addHeader("Content-Type", "application/octet-stream");

} catch (Exception e) {

e.printStackTrace();

} finally {

headclient.getConnectionManager().shutdown();

}

HttpURLConnection conn = null;

try {

conn = (HttpURLConnection) new URL(strURL).openConnection();

RandomAccessFile fis = new RandomAccessFile(new File(localFile), "r");

if (startPos < fis.length()) {

conn.setRequestMethod("PUT");

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setRequestProperty("Content-Type", "application/octet-stream");

conn.setRequestProperty("File-Name", allFile[i].getName());

OutputStream os = conn.getOutputStream();

int rn = 0;

byte[] buf = new byte[4096];

while ((rn = fis.read(buf, 0, 4096)) > 0) {

os.write(buf, 0, rn);

}

os.close();

status = conn.getResponseCode();

}

fis.close();

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

try {

conn.getResponseCode();

} catch (IOException e1) {

e1.printStackTrace();

}

e.printStackTrace();

}

}

return status;

}

亲测,可以直接能用的java上传类(HTTP方式)。HTTP上传对于一些小文件是可以,对于一些大文件,因这种协议容易中断,因此必须考虑断点续传,这里我们没有把断点续传考虑进去,不然就太复杂了。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

我的拿手好戏作文 孝心作文 描写人的作文 小学二年级作文 作文吧 爱国的作文 分享作文 快乐作文 神奇的探险之旅400字作文 下雪了作文300字 有关劳动的作文 强国有我作文 英语自我介绍作文 关于朋友的作文 我的拿手好戏作文400字 打羽毛球的作文 我的家乡作文500字 初中满分作文 英语作文格式 我的家作文 我学会了包饺子作文 我的童年作文 宋作文 拼搏作文 四季作文 作文评语 关于消防安全的作文 大学英语六级作文 有关传统文化的作文 我的父亲作文600字