public static boolean fileUpload(String uuid,File file,SimpleDateFormat dateFormat,String filename){ try{ HttpURLConnection conn=HttpRequestUtils.getUrlConnection(Constants.FILE_SERVER, Constants.BUFFER_SIZE); conn.setRequestProperty("type","1"); conn.setRequestProperty("source", "s1"); conn.setRequestProperty("range", String.valueOf(0)); conn.setRequestProperty("filename", filename); conn.setRequestProperty("filecreatetime", dateFormat.format(new Date())); conn.setRequestProperty("fileid", uuid); conn.setRequestProperty("totalsize", String.valueOf(file.length())); RandomAccessFile randomAccessFile=new RandomAccessFile(file, "rw"); OutputStream out = new DataOutputStream(conn.getOutputStream()); int j=0; byte[] buf = new byte[Constants.BUFFER_SIZE]; int nRead=0; try { randomAccessFile.seek(Long.valueOf(0));//设置文件指针 while((nRead=randomAccessFile.read(buf,0,Constants.BUFFER_SIZE)) > 0) { out.write(buf,0,nRead); j += nRead; } out.close(); randomAccessFile.close(); } catch (NumberFormatException e) { e.printStackTrace(); return false; } catch (IOException e) { e.printStackTrace(); return false; }finally{ try { randomAccessFile.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } out.flush(); out.close(); // 定义BufferedReader输入流来读取URL的响应 BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8")); String line = null; while ((line = reader.readLine()) != null) { System.out.println(line); } }catch(Exception e){ logger.error(e); e.printStackTrace(); return false; } return true; }
下面是接收的部分代码:
response.reset(); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); //统一获取请求头的参数 String range = request.getHeader("range"); String totalsize = request.getHeader("totalsize"); String fileid = request.getHeader("fileid"); String filecreatetime = request.getHeader("filecreatetime"); String filename = request.getHeader("filename"); String source=request.getHeader("source"); File destfile=new File(storeFilePath+File.separator+filename); File descfile=new File(storeFilePath); descfile.mkdirs(); logger.info("文件地址:" + destfile); if(!destfile.exists()){ try { destfile.createNewFile(); } catch (IOException e) { logger.error(e); fileUploadResult = new FileUploadResult(false,FileBizCodeConstants.FILEID_UNEXIST, "IO读写出错"); return fileUploadResult; } } long filesize=destfile.length(); RandomAccessFile randomAccessFile; try { randomAccessFile = new RandomAccessFile(destfile, "rw"); } catch (FileNotFoundException e) { logger.error(e); fileUploadResult = new FileUploadResult(false,FileBizCodeConstants.FILEID_UNEXIST, "文件未找到"); return fileUploadResult; } byte[] buf = new byte[FileBizCodeConstants.BUFFER_SIZE]; int nRead; int stu=0; try { randomAccessFile.seek(Long.valueOf(range));//设置文件指针 while((nRead=is.read(buf,0,FileBizCodeConstants.BUFFER_SIZE)) > 0&&stu==0) { randomAccessFile.write(buf,0,nRead); l += nRead; } }
相关推荐
用 Java 实现断点续传 (HTTP),内容有: 断点续传的原理, Java 实现断点续传的关键几点, 断点续传内核的实现等。
包括一个客户端java文件,可以用来上传文件,但是要修改文件的地址;和一个服务端的完整JavaWeb项目,需要自己导入开发工具中调试
java实现FTP多线程断点续传,上传下载! - java学习与交流 - j2ee学习网 - j2ee学习网 (2012年5月21日) 用 Java 实现断点续传 (HTTP) (2012年5月21日) Java写的支持断点续传的FTP--crybaby的博客 (2012年5月21日) ...
之前也试过百度的webuploader,但是效果并不理想(想研究的也可以试试),然后一直找,找了很久,直到找到这个后,才基本满足功能所需,可以实现大文件断点续传的需求。大文件断点续传的优势主要体现在:有时候突然...
完整的java大文件分块上传支持断点续传,包含jar包,可以直接导入eclipse使用。
java FTP多线程 批量 断点续传,使用 1.建一个支持多线程FTP服务端; 如:xxftp有Windows和Linux版本; 2.建一个项目导入文件测试;
完整的文件断点续传DEMO,直接导入eclipse就可以用,前端用HTML5对文件进行切片,后端由JAVA做服务器进行接收。
使用java 语言实现的 Socket文件断点续传 ,可用于Android开发。
Java上传文件到FTP服务器,支持断点续传
本源码项目是基于Java的FastDFS大文件上传与断点续传设计,包含36个文件,主要使用Java、JavaScript和CSS编程语言。该项目旨在实现h5与fastdfs之间的高性能断点续传、秒传、大文件上传以及使用redis文件锁。系统提供...
java实现文件断点续传
java断点续传与多线程下载java断点续传与多线程下载java断点续传与多线程下载
主要介绍了Java文件断点续传实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
上传大文件java demo。 说明 http://blog.csdn.net/freewebsys/article/details/41074213
利用mongodb存储文件,前台使用百度webuploader的文件md5实现断点续传,一次上传,下次秒传,解决文件重复问题,避免数据冗余,文件上传后支持下载, 特定格式支持在线预览,office转pdf后前台新页面显示pdf,相关...
断点续传内核的实现 主要用了 6 个类,包括一个测试类。 SiteFileFetch.java 负责整个文件的抓取,控制内部线程 (FileSplitterFetch 类 )。 FileSplitterFetch.java 负责部分文件的抓取。 FileAccess.java 负责...
java和Android文件下载断点续传和图片下载代码实现, 可直接复制代码, 实现多种文件下载,
对于大文件的传输有时会断开连接,如果重新传输会大大影响用户体验,因此分享一下大文件断点续传给大家参考一下.
断点续传源码,如果想研究java断点续传技术的小伙伴,可下载去研究一下