java 文件传输_Java开发之如何通过HTTP方式传输文件
平时我们传文件,一般都是通过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上传对于一些小文件是可以,对于一些大文件,因这种协议容易中断,因此必须考虑断点续传,这里我们没有把断点续传考虑进去,不然就太复杂了。
java 文件传输_Java开发之如何通过HTTP方式传输文件相关推荐
- java webservice 依赖_java开发webservice的几种方式
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...
- Java微信公众平台开发--番外篇,对GlobalConstants文件的补充
转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...
- java 文件缓冲区_Java开发笔记(八十六)通过缓冲区读写文件
前面介绍了利用文件写入器和文件读取器来读写文件,因为FileWriter与FileReader读写的数据以字符为单位,所以这种读写文件的方式被称作"字符流I/O",其中字母I代表输 ...
- java swing对话框_Java开发笔记(一百三十五)Swing的文件对话框
除了常规的提示对话框,还有一种对话框也很常见,它叫做文件对话框.文件对话框又分为两小类:打开文件的对话框.保存文件的对话框,但在Swing中它们都用类型JFileChooser来表达.下面是JFile ...
- java对文件读取_java开发中文件读取的方法总结
1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件 ...
- java h2 数据库连接_Java开发的嵌入式数据库H2使用教程
H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中. H2最大的用途在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据. 它的另一个用途是用于单元 ...
- java app后台_java开发app后台杂记
额,这篇文章纯粹记录开发中遇到的问题或者接触到的比较新鲜的事情.再有就是一些神奇的解决方案. 要诚心诚意的致敬现在的老大,虽然平时不上手代码也不太会底层实现(因为没见过),但是想法总是络绎不绝,思路总 ...
- java读取src xml文件路径_Java获取路径方法相对路径读取xml文件方法
(1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...
- java ftp 损坏_java ftp上传时断网,文件损坏
展开全部 以二进制流上传,然后实现断点续传. /** * 上传文件到FTP服务器,支持断点续传 * @param local 本地文件名称,绝对路径e68a8432313133353236313431 ...
- java zip 创建目录_Java实现Zip压缩目录中的所有文件
java中将一个文件夹下所有的文件压缩成一个文件,然import java.io.*; import java.util.zip.*; public class CompressD { // 缓冲 s ...
最新文章
- Image deformation of AffineSimilarityRigidProjective
- Android Activity的生命周期
- IOS 之__bridge__bridge_transfer和__bridge_retained
- python的set结构
- 操作系统 --- 使用套接字进行网络通信
- WPF应用程序内嵌网页
- Linux的概念与体系 6. Linux文本流(转载)
- html快捷保存图片,如何使用360浏览器快速保存图片
- 毕设日志——配置服务器与测试gpu版本的tf faster rcnn代码
- “else if”是否比“switch()case”更快? [重复]
- poj 3630 Phone List trie树—字典树 静态数组版!!!
- 摘抄:不注明来源,就是违反契约
- Tableau Online免费注册试用
- 远程桌面连接Windows后显示蓝屏
- SQL注入基础语句大全
- 【安全系列】beef-xss攻击示例
- centos7 teamspeak3的搭建
- 龙族幻想服务器正在维护中,【龙族幻想】3月18日维护公告
- 安卓中Paint类和Canvas类的方法汇总
- 千里之行,始于驭风——咕咚新款21k驭风跑鞋体验