首页后端开发其他后端知识JSP 多个文件打包下载代码

JSP 多个文件打包下载代码

时间2024-02-08 01:41:03发布访客分类其他后端知识浏览161
导读:收集整理的这篇文章主要介绍了JSP 多个文件打包下载代码,觉得挺不错的,现在分享给大家,也给大家做个参考。 现把该程序主要代码贴下,供大家需要的时候参考下: <%@page imp...
收集整理的这篇文章主要介绍了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+(n& 0xF);
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+(n& 0xF);
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实现远程文件下载保存到服务器指定目录中的方法

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: JSP 多个文件打包下载代码
本文地址: https://pptw.com/jishu/604833.html
java 中文字符串数组按照音序排列 jsp JFreeChart使用心得与例子

游客 回复需填写必要信息