文件断点续传

if(set.size()>0){
   goods = set.get(0);
   String path = StorageAddress.getValue(siteid)+goods.getEISBN()+"/"+goods.getFileName();
   try {
    HttpServletResponse response = za.getResponse();
    long haveLength=0;
    LogUtil.info("文件地址为:"+path);
    File file = new File(path);
    if(file.exists()){
     result.put("result", 1);
     
     long bookFileLength = file.length();
      if ( $V("Range") != null){  
            response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);//206  
            haveLength = Long.parseLong(za.getRequest().getHeader("Range").replaceAll("bytes=","").replaceAll("-",""));  
           }  
           response.addHeader("Content-Length", new Long(bookFileLength - haveLength).toString());  
           response.addHeader("Content-Range","bytes " + new Long(haveLength).toString() + "-" + new Long(bookFileLength -1).toString() + "/" + new Long(bookFileLength).toString());  
           response.setContentType("applicatio" + "n/octet-stream");  
           response.setHeader("Content-Disposition", "attachment;filename=\"" + file.getName() + "\"");  
           FileInputStream fis = new FileInputStream(file);
           fis.skip(haveLength);  
           byte[] b = new byte[1024];  
           int i;  
           while ( (i = fis.read(b)) != -1 ){  
            response.getOutputStream().write(b,0,i);  
           }
           fis.close();
           return;
    }else{
     result.put("result", 0);
     result.put("message", "EISBN对应的电子书不存在");
    }
   
   } catch (Exception e) {
    e.printStackTrace();
   } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值