通过网络路径获取文件byte,转入服务器临时文件中,最后保存进压缩包提供给用户下载

批量下载--压缩文件

 

String[] nameAll = name.split(",");//接收打包数组
/**
 * 定义压缩包
 */
String downloadFilename = "压缩包名称.zip";
downloadFilename = URLEncoder.encode(downloadFilename, "UTF-8");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename);
ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());//压缩包输出流
/**
 * 根据数量生成系统临时文件
 */
File[] files =new File[nameAll.length];
for(int i=0;i
 
/**
 * 得到文件--处理放入零时文件
 */
for(int i=0;i
/**
 * 命名--放入压缩包中
 */
for (int i=0;i
/**
 * 根据网络地址获得数据的字节流
 * @param urlStr 网络连接地址
 * @return
 */
public static byte[] getImageFromNetByUrl(String urlStr){
   try {
      URL url = new URL(urlStr);
      HttpURLConnection conn = (HttpURLConnection)url.openConnection();
      conn.setRequestMethod("GET");
      conn.setConnectTimeout(3 * 1000);
      InputStream is = conn.getInputStream();//通过输入流获取图片数据
      byte[] bt = readInputStream(is);//得到图片的二进制数据
      return bt;
   } catch (Exception e) {
      e.printStackTrace();
   }
   return null;
}
/**
 * 从输入流中获取数据
 * @param inStream 输入流
 * @return
 * @throws Exception
 */
public static byte[] readInputStream(InputStream inStream) throws Exception{
   ByteArrayOutputStream outStream = new ByteArrayOutputStream();
   byte[] buffer = new byte[1024];
   int len = 0;
   while( (len=inStream.read(buffer)) != -1 ){
      outStream.write(buffer, 0, len);
   }
   inStream.close();
   return outStream.toByteArray();
}

通过网络路径获取文件byte,转入服务器临时文件中,最后保存进压缩包提供给用户下载_第1张图片

你可能感兴趣的:(后端开发)