当前位置 : 主页 > 编程语言 > c++ >

合并分割后的小文件(下载)

来源:互联网 收集:自由互联 发布时间:2021-07-03
合并分割后的小文件 @ApiOperation(value = "合并下载文件", notes = "合并下载文件", httpMethod = "GET", produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/mergePartFiles", method = RequestMethod.GET) pu
合并分割后的小文件
@ApiOperation(value = "合并下载文件", notes = "合并下载文件", httpMethod = "GET", produces = MediaType.APPLICATION_JSON_VALUE)
   @RequestMapping(value = "/mergePartFiles", method = RequestMethod.GET)
    public void mergePartFiles(HttpServletResponse response, String  fileName){
        Token token = ConcurrentHashMapUtil.getToken(osv3Params.getToken());
        if (StringUtils.isEmpty(token)){
            //手动认证
            AuthenticateHandler.start(osv3Params);
            token = ConcurrentHashMapUtil.getToken(osv3Params.getToken());
        }
       try {
           //创建临时文件
           File tempFile =  File.createTempFile(fileName, null);
           OSClient.OSClientV3 clientV3 = OSFactory.clientFromToken(token);
           List
  list = clientV3.objectStorage().objects().list("part");
           //创建输出流。
           BufferedOutputStream bosFinal= new BufferedOutputStream(
                   new FileOutputStream(tempFile));
           //构建流集合。
           Vector
 
   vector = new Vector
  
   (); //int d=0; for (int i = 0; i < list.size(); i++) { // d = d+i*d; DLPayload dlPayload = clientV3.objectStorage().objects().download("part", list.get(i).getName()); InputStream inputStream = dlPayload.getInputStream(); vector.addElement(inputStream); } Enumeration
   
     e = vector.elements(); //创建一个合并流的对象 SequenceInputStream sis = new SequenceInputStream(e); //读写数据 byte[] buf = new byte[1024]; int len = 0; //6.通过response对象获取OutputStream流 OutputStream out = response.getOutputStream(); response.setHeader("content-type", "text/html;charset=UTF-8"); response.setHeader("content-disposition", "attachment;filename="+fileName); while ((len = sis.read(buf)) != -1) { //8.使用OutputStream将缓冲区的数据输出到客户端浏览器 out.write(buf,0,len); } } catch (IOException e) { e.printStackTrace(); } }
   
  
 
网友评论