• 下载文件返web端流


    下载数据
    @ApiOperation(value = "水面csv数据下载" ,response = MeteorWaterData.class,responseContainer = "List") @RequestMapping(value = "Water/{usaf}/data/csv", method = RequestMethod.GET) public void all2(HttpServletRequest request,HttpServletResponse response, @ApiParam("气象站USAF编号") @PathVariable(value = "usaf") String usaf, @ApiParam("查询起始时间") @RequestParam(value = "start_date", defaultValue = "0", required = false) long startDate, @ApiParam("查询结束时间") @RequestParam(value = "end_date", defaultValue = "0", required = false) long endDate, @ApiParam("路径") @RequestParam(value = "path", required = false) String path ){ try { response.setContentType("text/csv;charset=utf-8"); response.setCharacterEncoding("utf-8"); request.setCharacterEncoding("utf-8"); List<MeteorWaterData> meteorGroundDataListCsv = meteorWaterDataNewService.getPagedSoundingCsvData(startDate, endDate, usaf); //返回前段 response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode("Warte.csv", "GB2312")); PrintWriter out = response.getWriter(); //标题头 out.write("sm_usaf,sm_date,sm_temperature,sm_surface_temperature,sm_rh ,sm_wind_dir,sm_wind_speed," + "sm_mixing_height,sm_below_rate, sm_above_rate ,sm_wave_period ,sm_wave_height"); out.write(" "); for(MeteorWaterData date : meteorGroundDataListCsv){ out.write(date.getSmUsaf()+","+ date.getSmDate()+","+ date.getSmTemperature()+","+ date.getSmSurfaceTemperature()+","+ date.getSmRh()+","+ date.getSmWindDir()+","+ date.getSmWindSpeed()+","+ date.getSmMixingHeight()+","+ date.getSmBelowRate()+","+ date.getSmAboveRate()+","+ date.getSmWavePeriod()+","+ date.getSmWaveHeight()+" "); } out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); }

     返回文件

     @ApiOperation(value = "地面csv数据导出"
              ,response = MeteorGroundData.class,responseContainer = "List")
      @RequestMapping(value = "Ground/{usaf}/data/csv", method = RequestMethod.GET)
      public void all(HttpServletRequest request,HttpServletResponse response,
        @ApiParam("气象站USAF编号")
        @PathVariable(value = "usaf") String usaf,
        @ApiParam("查询起始时间")
        @RequestParam(value = "start_date", defaultValue = "0", required = false) long startDate,
        @ApiParam("查询结束时间")
        @RequestParam(value = "end_date", defaultValue = "0", required = false) long endDate,
        @ApiParam("路径")
        @RequestParam(value = "path", required = false) String  path
      ){
    	
    	  //换行符
          final String NEW_LINE = "
    ";
          //文件名称D:	est2017-06-28ground.csv
          String fileName = null;
          if(path == null || path==" "){
        	  fileName = "地址+ground.csv";
          }else{
        	  fileName = path+"\ground.csv";
          }
         
          System.out.println(fileName);
          try {
        	  response.setContentType("text/html;charset=utf-8");
        	  response.setCharacterEncoding("utf-8");
        	  request.setCharacterEncoding("utf-8");
        	  List<MeteorGroundData> meteorGroundDataListCsv = meteorGroundDataNewService.getPagedGroundCsvData(startDate, endDate, usaf);
              //标题头
              String title = " 区站ID,区站号/观测平台标识 (字符), 年 月 日 时次, 气压 , 海平面气压 ,最高气压,"
              		       + " 最低气压, 最大风速 ,极大风速 ,极大风速的风向(角度),10分钟平均风向(角度),10分钟平均风速,"
              		       + "最大风速的风向(角度),温度/气温  ,最高气温,最低气温,相对湿度 ,水汽压 , 最小相对湿度, 降水量";
               
              StringBuilder csvStr = new StringBuilder();
              csvStr.append(title).append(NEW_LINE);
              for(MeteorGroundData csvData : meteorGroundDataListCsv){
                  csvStr.append(csvData.getId()).append(",")
                  .append(csvData.getDmUsaf()).append(",")
                  .append(csvData.getDmDate()).append(",")
                  .append(csvData.getDmQiya()).append(",")
                  .append(csvData.getDmHpmQiya()).append(",")
                  .append(csvData.getDmMaxQiya()).append(",")
                  .append(csvData.getDmMinQiya()).append(",")
                  .append(csvData.getDmMaxFengsu()).append(",")
                  .append(csvData.getDmMaximumFengsu()).append(",")
                  .append(csvData.getDmMaximumWindJiaodu()).append(",")
                  .append(csvData.getDmMeanWindJiaodu()).append(",")
                  .append(csvData.getDmMeanFengsu()).append(",")
                  .append(csvData.getDmMaxWindJiaodu()).append(",")
                  .append(csvData.getDmTemp()).append(",")
                  .append(csvData.getDmMaxTemp()).append(",")
                  .append(csvData.getDmMinTemp()).append(",")
                  .append(csvData.getDmRelativeShidu()).append(",")
                  .append(csvData.getDmWaterQiya()).append(",")
                  .append(csvData.getDmMinRelativeShidu()).append(",")
                  .append(csvData.getDmRainfall()).append(NEW_LINE);
              }
               //返回oi
              //写文件
              Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(fileName)), "GB2312"));
              writer.write(csvStr.toString());
              writer.flush();
              writer.close();
              response.getWriter().print(writer);
          } catch (Exception e) {
              e.printStackTrace();
          }
         
          
      }
    
  • 相关阅读:
    jquery扩展
    [转][C#]加密解密类
    [转][C#]压缩解压
    [转][C#]程序的动态编译
    [转][C#]Linq 的扩展方法
    [转]Oracle left join right join
    [转]检测到有潜在危险的 Request.Form 值
    IIS 添加 MIME
    [转][Echarts]俄罗斯方块
    01-python爬虫之常见的加密方式
  • 原文地址:https://www.cnblogs.com/arctictern/p/7099754.html
Copyright © 2020-2023  润新知