`
shendixiong
  • 浏览: 398519 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java 文件断点续传

阅读更多
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实现断点续传

    Java实现断点续传是一项在文件传输中非常实用的技术,特别是在大文件传输或者网络不稳定的情况下。断点续传允许用户在文件传输中断后从上次中断的位置继续,而不是重新开始整个传输过程,极大地提高了效率和用户体验...

    基于Vue和Java的断点续传与大文件上传系统设计源码

    本项目是一个基于Vue和Java的断点续传与大文件上传系统设计源码,共包含563个文件,其中包括258个Java文件、82个SVG文件等。系统采用了Vue-uploader和若依框架,为用户提供了一个便捷的文件上传解决方案。系统支持多...

    基于Java的FastDFS大文件上传与断点续传设计源码

    本源码项目是基于Java的FastDFS大文件上传与断点续传设计,包含36个文件,主要使用Java、JavaScript和CSS编程语言。该项目旨在实现h5与fastdfs之间的高性能断点续传、秒传、大文件上传以及使用redis文件锁。系统提供...

    java大文件分块上传断点续传demo

    本示例"java大文件分块上传断点续传demo"提供了一个完整的解决方案,它允许用户将大文件分块上传,并在上传过程中支持断点续传。 首先,理解"分块上传"的概念。分块上传是将一个大文件分割成多个小块,然后逐个上传...

    自己收集的多个Java FTP断点续传的例子源码

    java实现FTP多线程断点续传,上传下载! - java学习与交流 - j2ee学习网 - j2ee学习网 (2012年5月21日) 用 Java 实现断点续传 (HTTP) (2012年5月21日) Java写的支持断点续传的FTP--crybaby的博客 (2012年5月21日) ...

    用Java 实现HTTP断点续传技术文档【附实例代码】

    断点续传的基本思想是:当文件下载到一定程度时发生中断,则在下次下载时可以从已下载的部分之后继续下载剩余部分,而不是从头开始下载。这一过程涉及到了服务器与客户端之间的通信协议,尤其是HTTP协议的支持。 ##...

    JAVA大文件断点续传示例

    在Java编程中,大文件断点续传是一项重要的技术,特别是在网络不稳定或上传过程中可能出现中断的情况下。本示例主要探讨如何实现这样的功能,确保大文件能够分块上传并在中断后从上次停止的地方继续。 首先,我们...

    大文件断点续传功能

    之前也试过百度的webuploader,但是效果并不理想(想研究的也可以试试),然后一直找,找了很久,直到找到这个后,才基本满足功能所需,可以实现大文件断点续传的需求。大文件断点续传的优势主要体现在:有时候突然...

    java断点续传,刚刚整理出来多线程处理

    Java 断点续传技术是网络传输中常用的一种机制,特别是在大文件下载或上传时,如果因为网络中断或其他原因导致传输失败,可以借助断点续传功能从上次中断的地方继续,而无需重新开始。在Java中实现断点续传,通常...

    xuchuanftp_java_FTP断点续传_

    描述"Java上传文件到FTP服务器,支持断点续传"明确了Java代码的目标:通过FTP协议将本地文件上传到远程FTP服务器,并且在上传过程中能够处理因各种原因中断的情况,继续从上次停止的地方开始,而不是重新开始整个...

    Java文件断点续传实现原理解析

    Java 文件断点续传实现原理解析 Java 文件断点续传实现原理解析是指在文件传输过程中,实现断点续传的功能,即在文件传输过程中突然中断,重新连接后可以从上一次断点继续传输。这种技术在实际应用中非常广泛,例如...

    用Java实现断点续传.txt

    ### 用Java实现断点续传的技术解析 #### 一、技术原理概述 断点续传是一种在网络连接不稳定或在下载过程中出现意外中断时能够继续完成下载的技术。它通过记录下载过程中断时的位置,当重新启动下载任务时,可以从...

    java大文件断点续传

    Java大文件断点续传是一种优化的文件传输技术,它允许在文件传输中断后从上次停止的地方继续,而不是从头开始。这种技术尤其适用于网络不稳定或文件尺寸巨大的情况,能够显著提升用户满意度和效率。在本文中,我们将...

    java断点续传

    Java 断点续传技术是实现大文件在网络中高效传输的一种方法,特别是在网络不稳定或文件体积过大的情况下显得尤为重要。断点续传允许用户在文件传输中断后从上次中断的位置继续传输,而不是重新开始,从而提高了文件...

    java实现断点续传

    Java 实现断点续传是一项在文件下载或上传过程中经常用到的技术,它允许用户在中断网络连接后从上次停止的地方继续,而无需重新开始整个过程。这项技术尤其适用于大文件传输,可以大大提高效率和用户体验。以下是...

    spring boot实现大文件断点续传

    在这个场景下,结合Google的断点续传框架,我们可以实现大文件的高效、安全上传,即使在上传过程中网络中断,也能从上次中断的位置继续,而无需重新开始。以下是对这个知识点的详细解释。 首先,了解断点续传的基本...

    java Socket文件断点续传 Android

    Java Socket技术在Android开发中广泛...通过对这个类的分析和调试,开发者可以深入理解Java Socket在Android中实现文件断点续传的细节和技巧。在实际应用中,还需要考虑安全问题,如文件的权限控制、防止恶意攻击等。

    HTML5 JAVA大文件断点续传

    完整的文件断点续传DEMO,直接导入eclipse就可以用,前端用HTML5对文件进行切片,后端由JAVA做服务器进行接收。

    用Java实现断点续传

    【断点续传的原理】 断点续传是一种在文件传输过程中...总结,Java实现断点续传涉及到网络编程、文件操作、HTTP协议以及错误处理等多个方面,通过合理的设计和实现,可以在不稳定的网络环境中提供高效的文件下载服务。

Global site tag (gtag.js) - Google Analytics