平时我们传文件,一般都是通过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方式传输文件相关推荐

  1. java webservice 依赖_java开发webservice的几种方式

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...

  2. Java微信公众平台开发--番外篇,对GlobalConstants文件的补充

    转自:http://www.cuiyongzhi.com/post/63.html 之前发过一个[微信开发]系列性的文章,也引来了不少朋友观看和点评交流,可能我在写文章时有所疏忽,对部分文件给出的不是 ...

  3. java 文件缓冲区_Java开发笔记(八十六)通过缓冲区读写文件

    前面介绍了利用文件写入器和文件读取器来读写文件,因为FileWriter与FileReader读写的数据以字符为单位,所以这种读写文件的方式被称作"字符流I/O",其中字母I代表输 ...

  4. java swing对话框_Java开发笔记(一百三十五)Swing的文件对话框

    除了常规的提示对话框,还有一种对话框也很常见,它叫做文件对话框.文件对话框又分为两小类:打开文件的对话框.保存文件的对话框,但在Swing中它们都用类型JFileChooser来表达.下面是JFile ...

  5. java对文件读取_java开发中文件读取的方法总结

    1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件 ...

  6. java h2 数据库连接_Java开发的嵌入式数据库H2使用教程

    H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中. H2最大的用途在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据. 它的另一个用途是用于单元 ...

  7. java app后台_java开发app后台杂记

    额,这篇文章纯粹记录开发中遇到的问题或者接触到的比较新鲜的事情.再有就是一些神奇的解决方案. 要诚心诚意的致敬现在的老大,虽然平时不上手代码也不太会底层实现(因为没见过),但是想法总是络绎不绝,思路总 ...

  8. java读取src xml文件路径_Java获取路径方法相对路径读取xml文件方法

    (1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...

  9. java ftp 损坏_java ftp上传时断网,文件损坏

    展开全部 以二进制流上传,然后实现断点续传. /** * 上传文件到FTP服务器,支持断点续传 * @param local 本地文件名称,绝对路径e68a8432313133353236313431 ...

  10. java zip 创建目录_Java实现Zip压缩目录中的所有文件

    java中将一个文件夹下所有的文件压缩成一个文件,然import java.io.*; import java.util.zip.*; public class CompressD { // 缓冲 s ...

最新文章

  1. Image deformation of AffineSimilarityRigidProjective
  2. Android Activity的生命周期
  3. IOS 之__bridge__bridge_transfer和__bridge_retained
  4. python的set结构
  5. 操作系统 --- 使用套接字进行网络通信
  6. WPF应用程序内嵌网页
  7. Linux的概念与体系 6. Linux文本流(转载)
  8. html快捷保存图片,如何使用360浏览器快速保存图片
  9. 毕设日志——配置服务器与测试gpu版本的tf faster rcnn代码
  10. “else if”是否比“switch()case”更快? [重复]
  11. poj 3630 Phone List trie树—字典树 静态数组版!!!
  12. 摘抄:不注明来源,就是违反契约
  13. Tableau Online免费注册试用
  14. 远程桌面连接Windows后显示蓝屏
  15. SQL注入基础语句大全
  16. 【安全系列】beef-xss攻击示例
  17. centos7 teamspeak3的搭建
  18. 龙族幻想服务器正在维护中,【龙族幻想】3月18日维护公告
  19. 安卓中Paint类和Canvas类的方法汇总
  20. 千里之行,始于驭风——咕咚新款21k驭风跑鞋体验

热门文章

  1. css背景和边框标签总结
  2. 推荐十大国外IT网站
  3. ider中的html元素背景操作,idea怎么设置背景颜色
  4. hping 详解_hping3使用
  5. shell教你如何批量解压缩——unzip命令
  6. linux vi 替换字符串,Linux vi编辑器如何查找与替换关键字
  7. Unity 根据文件路径批量修改图片格式
  8. vue基础----用vue来展示表格数据
  9. 处理word 多级标题编号不联动的问题
  10. 雷达存在感应器技术,实时感知控制应用,雷达人体探测方案