java实现文件的断点续传和断点下载,有知道的交流下。

author author     2023-03-21     600

关键词:

java实现文件的断点续传和断点下载,有知道的交流下。

参考技术A
    /**      * 下载服务器已存在的文件      *       * @param request      * @param response      * @param proposeFile      * @throws IOException      * @throws FileNotFoundException      */      private void downloadExistsFile(HttpServletRequest request,              HttpServletResponse response, File proposeFile) throws IOException,              FileNotFoundException           log.debug("下载文件路径:" + proposeFile.getPath());          long fSize = proposeFile.length();          // 下载          response.setContentType("application/x-download");          String isoFileName = this                  .encodeFilename(proposeFile.getName(), request);          response.setHeader("Accept-Ranges", "bytes");          response.setHeader("Content-Length", String.valueOf(fSize));          response.setHeader("Content-Disposition", "attachment; filename="                  + isoFileName);          long pos = 0;          if (null != request.getHeader("Range"))               // 断点续传              response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);              try                   pos = Long.parseLong(request.getHeader("Range").replaceAll(                          "bytes=", "").replaceAll("-", ""));               catch (NumberFormatException e)                   log.error(request.getHeader("Range") + " is not Number!");                  pos = 0;                                  ServletOutputStream out = response.getOutputStream();          BufferedOutputStream bufferOut = new BufferedOutputStream(out);          InputStream inputStream = new FileInputStream(proposeFile);          String contentRange = new StringBuffer("bytes ").append(                  new Long(pos).toString()).append("-").append(                  new Long(fSize - 1).toString()).append("/").append(                  new Long(fSize).toString()).toString();          response.setHeader("Content-Range", contentRange);          log.debug("Content-Range", contentRange);          inputStream.skip(pos);          byte[] buffer = new byte[5 * 1024];          int length = 0;          while ((length = inputStream.read(buffer, 0, buffer.length)) != -1)               bufferOut.write(buffer, 0, length);                    bufferOut.flush();          bufferOut.close();          out.close();          inputStream.close();        
追问

你这个好像是断点下载的,上传的有吗

参考技术B

我项目中用到的关键代码,断点下载文件:

URL url = new URL("http://f1.market.xiaomi.com/download/AppStore/0279e54e42c95454b29ac9628eccb1bfb5be22aeb/dian.zi.com.zidian.apk");

HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();

httpConnection.setRequestProperty("User-Agent", "NetFox");

httpConnection.setReadTimeout(60000);

//xxx表示你已下载的文件大小

httpConnection.setRequestProperty("RANGE", "bytes=" + xxx + "-");

http文件的断点续传和下载

http://www.tuicool.com/articles/ZbyymqJContent-Disposition:inline;filename="c501b_01_h264_sd_960_540.mp4"   浏览器的行为不再是提示下载文件,而是打开文件一个server端和client端的例子http抓包的例子206PartialContent服务器已经成功处理 查看详情

基于http的断点续传和多线程下载

...请求该资源未下载的部分,而不是重新请求整个资源,来实现断点续传。  分块请求资源实例:Eg1:Range:bytes=306302-:请求这个资源从306302个字节到末尾 查看详情

unity使用unitywebrequest下载超大资源,实现断点续传和分段下载。(代码片段)

最近有个项目需要在服务器下载视频资源到本地,然后在本地播放视频,一开始看Unity官方文档找到资源下载的方法,但是在下载超大资源(一个2.8G的.mp4格式的视频)的时候回出现未知错误导致视频不能下载... 查看详情

断点续传和分块上传

#pragmamark 异步上传-(void)uploadObjectAsync:(NSString*)FileURLobjectKey:(NSString*)objectKey{  OSSPutObjectRequest*put=[OSSPutObjectRequestnew];  NSLog(@"objectKeyis%@",objectKey 查看详情

文件下载之断点续传(客户端与服务端的实现)

【转】文件下载之断点续传(客户端与服务端的实现)【转】文件下载之断点续传(客户端与服务端的实现)前面讲了文件的上传,今天来聊聊文件的下载。老规矩,还是从最简单粗暴的开始。那么多简单算简单?多粗暴算粗暴... 查看详情

断点续传下载原理实现

...度动态创建的文件希望能够分段下载HTTP断点续传报文要实现HTTP断点续传必须要简单了解以下几个报文。Accept-Ranges告诉客户端(浏览器..)服务器端支持断点续传 服务器端返回Range客户端告诉服务器端从指定的的位置/范围(这里... 查看详情

java实现文件的断点续传

java实现文件的断点续传:依赖:<!--文件上传--><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.2.1</version></dep 查看详情

基于http的文件断点续传实现(代码片段)

基于Http的文件断点续传实现1:断点续传的介绍客户端软件断点续传指的是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如... 查看详情

文件下载之断点续传(客户端与服务端的实现)

原文:http://www.cnblogs.com/zhaopei/p/download.html 阅读目录 文件下载-服务端使用a标签提供文件下载使用Response.TransmitFile提供文件下载其他方式文件下载文件下载-客户端直接下载异步下载断点续传断点续传(服务端的支持)多线程... 查看详情

如何用java实现http断点续传功能

断点设置方法,当有临时文件时,直接在临时文件中读取上次下载中断时的断点位置。没有临时文件,即第一次下载时,重新设置断点。rantmpfile.seek()跳转到一个位置的目的是为了让各个断点存储的位置尽量分开。参考技术A我项... 查看详情

java实现文件的断点续传

​需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制。第一步:前端修改由于项目使用的是BJUI前端框架,并... 查看详情

超大文件上传和断点续传的组件

...ntent-Range实体头。HTTP协议本身不支持断点上传,需要自己实现。 二、Range  用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式:  查看详情

前端实现文件的断点续传

 早就听说过断点续传这种东西,前端也可以实现一下断点续传在前端的实现主要依赖着HTML5的新特性,所以一般来说在老旧浏览器上支持度是不高的 本文通过断点续传的简单例子(前端文件提交+后端PHP文件接收),理解... 查看详情

javaweb断点续传,我用的是fileupload来做的上传。

现在上传和进度条已经实现的,就是断点续传和。和断点进度条要如何实现我一点头绪也没有,求高手指点!!!我用的上传jar是Commons-fileupload和Commons-ioform提交的<inputtype="file">数据在后台要如何获取上传文件的名字... 查看详情

前端实现文件的断点续传

早就听说过断点续传这种东西,前端也可以实现一下断点续传在前端的实现主要依赖着HTML5的新特性,所以一般来说在老旧浏览器上支持度是不高的本文通过断点续传的简单例子(前端文件提交+后端PHP文件接收),理解其大致的... 查看详情

前端实现文件的断点续传

早就听说过断点续传这种东西,前端也可以实现一下断点续传在前端的实现主要依赖着HTML5的新特性,所以一般来说在老旧浏览器上支持度是不高的本文通过断点续传的简单例子(前端文件提交+后端PHP文件接收),理解其大致的... 查看详情

springboot实现分片上传断点续传大文件极速秒传-备忘(代码片段)

...因此可以使用分片上传的场景,都可以使用断点续传。2.3实现断点续传的核心逻辑  在分片上传的过程中,如果因为系统崩溃或者网络中断等异常因素导致上传中断,这时候客户端需要记录上传的进度。在之后支持再次上传时... 查看详情

多线程下载文件(支持暂停取消断点续传)

...下载和下载完成后如何组装到一起暂停下载和继续下载的实现(wait()、notifyAll()、synchronized的 查看详情