JSP中怎样实现一次下载多个文件

babymon 2004-08-25 05:01:49
JSP中怎样实现一次下载多个文件到一个用户提交的目录中,也就是说用户下载时只能够选择目录,而
不能更改文件名。Thanks to everybody!!!!
...全文
677 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gjd111686 2004-08-26
用Applet也可以:
public void ReadURL(String strURL)
{
try
{
int iHttpResult;
URL m_URL=new URL(strURL);
URLConnection m_URLConn=m_URL.openConnection();
m_URLConn.connect();
HttpURLConnection m_HttpConn=(HttpURLConnection)m_URLConn;
iHttpResult=m_HttpConn.getResponseCode();
if(iHttpResult!=HttpURLConnection.HTTP_OK)
JOptionPane.showMessageDialog(this,"无法连接...");
else
{
int iFileSize=m_URLConn.getContentLength();
InputStreamReader m_Reader=new InputStreamReader(m_URLConn.getInputStream());
char[] Buffer=new char[2048];
int iNum=0;
while(iNum>-1)
{
iNum=m_Reader.read(Buffer);
if(iNum<0)break;
//JOptionPane.showMessageDialog(this,new String(Buffer,0,iNum));
}
m_Reader.close();
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(this,e.getMessage());
}
}
回复
babymon 2004-08-26
好,去试试!!
回复
gjd111686 2004-08-26
调用这个JS函数吧
function DownURL(strRemoteURL,strLocalURL)
{
try
{
var xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP");
xmlHTTP.open("Get",strRemoteURL,false);
xmlHTTP.send();
var adodbStream=new ActiveXObject("ADODB.Stream");
adodbStream.Type=1;//1=adTypeBinary
adodbStream.Open();
adodbStream.write(xmlHTTP.responseBody);
adodbStream.SaveToFile(strLocalURL,2);
adodbStream.Close();
adodbStream=null;
xmlHTTP=null;
}
catch(e)
{
window.confirm("下载URL出错!");
}
//window.confirm("下载完成.");
}
回复
power17 2004-08-26
我写了一下,用了jspsmartupload。

不过有两个问题:

1.我用java.io.File file=new java.io.File(".");,得到的目录是c:\windows\system32\.

我让网上的很多朋友运行了一下,结果是tomcat下的某级目录。后来改成下面的

G:\\web\\Tomcat 5.0\\webapps\\ROOT\\upload(我的tomcat安装目录下的某级目录),其

它目录调节试不成功

2.不能下载.txt等格式的文件(在浏览器中打开)。

3.下载后的所有文件变成了一个Thumbs.db文件,我暂时还不知道这是用什么打开的


以下是我的代码,强烈欢迎指正。

<%@ page contentType="text/html; charset=gb2312" language="java" import="com.jspsmart.upload.*" %>
<%@ page import="java.io.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<%
java.io.File file=new java.io.File("G:\\web\\Tomcat 5.0\\webapps\\ROOT\\upload");
//得到指定目录下的所有文件
java.io.File[] files=file.listFiles();
//得到文件的个数
int count=files.length;
//用jspsmartuplaod组件进行下载
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
su.setContentDisposition(null);
for(int i=0;i<count;i++){
String flnm=files[i].getAbsolutePath();
su.downloadFile(flnm);
}

%>
</body>
</html>
回复
babymon 2004-08-25
那我能否实现将应用服务器端的多个文件复制到客户端,并且目的目录是用户可选择的.
我的应用服务器是weblogic8
回复
loveunittesting 2004-08-25
好像不可能,任何下载软件也都是一个一个下载的。同时下载要靠客户端软件,b/s结构的不行
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-08-25 05:01
社区公告
暂无公告