• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    JSP 多个文件打包下载代码
    现把该程序主要代码贴下,供大家需要的时候参考下:
    %@page import="java.util.*,
    java.net.*,
    java.text.*,
    java.util.zip.*,
    java.io.*" %>
    %!
    static Vector expandFileList(String[] files, boolean inclDirs){
    Vector v = new Vector();
    if (files == null) return v;
    for (int j=0; j  files.length; i++) v.add (new File(URLDecoder.decode(files[j])));
    for (int i=0; i  v.size(); i++){
    File f = (File) v.get(i);
    if (f.isDirectory()){
    File[] fs = f.listFiles();
    for (int n = 0; n  fs.length; n++) v.add(fs[n]);
    if (!inclDirs){
    v.remove(i);
    i--;
    }
    }
    }
    return v;
    }
    class Writer2Stream extends OutputStream{
    Writer out;
    Writer2Stream (Writer w){
    super();
    out = w;
    }
    public void write(int i) throws IOException{
    out.write(i);
    }
    public void write(byte[] b) throws IOException{
    for (int j=0;jb.length;j++){
    int n=b[j];
    //Convert byte to ubyte
    n=((n>>>4)0xF)*16+(n0xF);
    out.write (n);
    }
    }
    public void write(byte[] b, int off, int len) throws IOException{
    for (int j = off; j  off + len; j++){
    int n=b[j];
    n = ((n>>>4)0xF)*16+(n0xF);
    out.write(n);
    }
    }
    } 
    %>
    %
    /////下载压缩文件包
    Vector v = expandFileList(request.getParameterValues("selfile"), false);
    if (v.size() == 0){
    request.setAttribute("error", "No files selected");
    }
    else{
    File dir_file = new File(request.getRealPath("") + "/myfile/");
    int dir_l = dir_file.getAbsolutePath().length();
    response.setContentType ("application/zip");
    response.setHeader ("Content-Disposition", "attachment;filename=\"downloadname.rar\"");
    out.clearBuffer();
    ZipOutputStream zipout = new ZipOutputStream(new Writer2Stream(out));
    zipout.setComment("Download selected files \nas one WinRAR file:\ndownloadname.rar");
    zipout.setLevel(1);
    for (int i=0;iv.size();i++){
    File f = (File)v.get(i);
    if (f.canRead()){
    zipout.putNextEntry(new ZipEntry(f.getAbsolutePath().substring(dir_l+1)));
    BufferedInputStream fr = new BufferedInputStream(new FileInputStream(f));
    byte buffer[] = new byte[0xffff];
    int b;
    while ((b=fr.read())!=-1) zipout.write(b);
    fr.close();
    zipout.closeEntry();
    }
    }
    zipout.finish();
    out.flush();
    }
    %>
    您可能感兴趣的文章:
    • jsp实现从服务器下载xls文件到客户端的方法
    • jsp实现Servlet文件下载的方法
    • JSP文件下载功能的4种方法
    • JSP response对象实现文件下载的两种方式
    • JSP中实现判断客户端手机类型并跳转到app下载页面
    • jsp实现文件上传下载的程序示例
    • jsp 文件下载示例代码
    • jsp文件上传与下载实例代码
    • JSP 点击链接后下载文件(相当于右键另存)功能
    • Jsp页面实现文件上传下载类代码
    • JSP实现远程文件下载保存到服务器指定目录中的方法
    上一篇:JAVA 18位身份证号码校验码的算法
    下一篇:jsp JFreeChart使用心得与例子
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    JSP 多个文件打包下载代码 JSP,多个,文件,打包,下载,