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;j<b.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;i<v.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();
}
%>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 程序
, 代码
, write
, 多个
, 代码打包下载
参考
jsp下载文件代码、jsp上传文件代码、jsp文件代码、gulp 打包代码下载、c语言源代码打包下载,以便于您获取更多的相关知识。

时间: 2024-10-28 20:14:19

JSP 多个文件打包下载代码的相关文章

php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件_php技巧

总结: 使用PHP下载文件的操作需要给出四个header(),可以参考我的另一篇博文:PHP如何实现下载功能超详细流程分析 计算文件的大小的时候,并不需要先打开文件,通过filesize($filename)就可以看出,如果需要先打开文件的话,filesize可能就会是这样的形式了filesize($filehandle) 向客户端回送数据的是,记得要设置一个buffer,用来指定每次向客户端输出多少数据,如:$buffer=1023.如果不指定的话,就会将整个文件全部写入内存当中,再一次性的讲

struts多文件打包下载报错

问题描述 <actionname="getDownloadFile"method="getDownloadFile"class="com.njusc.wjsf.action.UnitAction"><resultname="success"type="stream"><paramname="contentType">${contentTypes}<

使用PHP自带zlib函数 几行代码实现PHP文件打包下载zip

<?php //获取文件列表 function list_dir($dir){ $result = array(); if (is_dir($dir)){ $file_dir = scandir($dir); foreach($file_dir as $file){ if ($file == '.' || $file == '..'){ continue; } elseif (is_dir($dir.$file)){ $result = array_merge($result, list_dir

不用WinRar将网络空间上的文件打包下载

winrar|打包|网络|下载 此方法,不建议压缩,大文件, 一般的小文件压几个还很好用的 <%@ Language=VBScript %><% Option Explicit %><!--#include file="asptar.asp"--><%Response.Buffer = TrueResponse.ClearDim Co,Temp,T,x,i,fsoBrowse,theFolder,TheSubFolders,FilePath,s

实现php加速的eAccelerator dll支持文件打包下载_php实例

选择下载对应您的系统和PHP版本的eAccelerator 2.将其重命名为 eaccelerator.dll (win版) 然后移至您的 php目录下 的 ext文件夹中 3.在c:\php\建立缓存文件夹 temp 修改权限为 user组可读写 3.根据您系统的情况,一般都是PHP 扩展 ISAPI 打开php.ini文件, 找到extension=php_zip.dll, 在下面添加 zend_extension_ts="C:\php\ext\eaccelerator.dll" 

如何将服务端的多个文件打包下载(转)

正在开发的系统中包含了这部分功能.下面将有关重点的代码粘贴出来,给大家参考 我用到了ICSharpCode.SharpZipLib这个dll. 据我所知,凡是现在做压缩和解压缩之类的程序,很少有人会不用这个组件的.赞一个先   1. 核心代码   MemoryStream ms = new MemoryStream(); byte[] buffer = null; using (ZipFile file = ZipFile.Create(ms)) { file.BeginUpdate(); fi

不用WinRar只有asp将网络空间上的文件打包下载_应用技巧

<%@ Language=VBScript %> <% Option Explicit %> <!--#include file="asptar.asp"--> <% Response.Buffer = True Response.Clear Dim Co,Temp,T,x,i,fsoBrowse,theFolder,TheSubFolders,FilePath,s,PH,objTar Co=0 PH="./UpFile" 

php实例电影文件验证下载代码

<?php教程 $dbhost = 'localhost';    // 数据库教程服务器  $dbuser = 'root';     // 数据库用户名  $dbpw = 'qwaszx';             // 数据库密码  $dbname = 'movie';  // 数据库名  $adminemail = www.jzread.com@jzread.com; // 系统管理员 email $database = 'mysql教程';  // 不能修改此处  $tplrefres

php实例电影文件验证下载代码(1/3)

<?php教程  $dbhost = 'localhost';    // 数据库教程服务器  $dbuser = 'root';     // 数据库用户名  $dbpw = 'qwaszx';             // 数据库密码  $dbname = 'movie';  // 数据库名  $adminemail = www.111cn.net@111cn.net; // 系统管理员 email     $database = 'mysql教程';  // 不能修改此处  $tplref