使用jspsmartupload中遇到的问题

xx_ch 2004-08-30 12:10:51
我使用jspsmartupload进行文件的上传和下载
在完全按照网上的例子来写的
下载页面如下
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="com.jspsmart.upload.*" %>
<%
// 新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
// 初始化
su.initialize(pageContext);
// 设定contentDisposition为null以禁止浏览器自动打开文件,
//保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
//doc时,浏览器将自动用word打开它。扩展名为pdf时,
//浏览器将用acrobat打开。
su.setContentDisposition(null);
// 下载文件
su.downloadFile("/upload/aa.txt");
%>
运行以后报错
java.lang.IllegalStateException: getOutputStream() has already been called for this response

我直接在页面写下载代码也出同样的错误,代码如下:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.io.*" %>
<%
String fileName = "aa.txt".toString();
//读到流中
InputStream inStream=new FileInputStream("/upload/aa.txt");
//设置输出的格式
response.reset();
response.setContentType("bin");
response.addHeader("Content-Disposition","attachment; filename=" + fileName );
//循环取出流中的数据
byte[] b = new byte[100];
int len;
while((len=inStream.read(b)) >0)
response.getOutputStream().write(b,0,len);
inStream.close();
%>

大家帮我看看,谢谢


...全文
131 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
phptong 2004-09-13
我给你一个可以下载的程序,我在本地写了完全可以运行!!
<%@ page language="java" contentType="text/html;charset=GB2312" import="com.jspsmart.upload.*"%>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />

<HTML>
<BODY BGCOLOR="white">
<H1></H1>
<HR>

<%

try {

// Variables
int count=0;
mySmartUpload.setAllowedFilesList("gif,jpg");

// Initialization
mySmartUpload.initialize(pageContext);

mySmartUpload.setTotalMaxFileSize(200000);

// Upload
mySmartUpload.upload();


Files files=mySmartUpload.getFiles();
File file=files.getFile(0);
String filename=file.getFileName();
String filePath=file.getFilePathName();

// out.println(filePath);
// if(1==1) return;



// Save the files with their original names in the virtual path "/upload"
// if it doesn't exist try to save in the physical path "/upload"
count = mySmartUpload.save("/upload");
// out.println(count);
// if(1==1) return;

// Save the files with their original names in the virtual path "/upload"
// count = mySmartUpload.save("/upload", mySmartUpload.SAVE_VIRTUAL);

// Display the number of files uploaded
out.println("<script language=JavaScript>");
out.println("alert('图片上传成功');");
//out.println("window.parent.parent.frm.pic.value='"+filename+"';");
out.println("window.close();");
out.println("window.opener.frm.picAddress.value='"+filename+"';");

//out.println("window.opener.close();");
out.println("</script>");

} catch (Exception e) {
// out.println(e.toString());
out.println("<script language=JavaScript>");
out.println("alert('图片上传错误,要求gif,jpg文件或者文件不超过200k');");
// out.println("window.close();");

out.println("history.go(-1);");
// response.redirect("uploadpic.htm");
out.println("</script>");

}

%>

</BODY>
</HTML>
回复
xx_ch 2004-09-13
你给的是上传的呀?我上传没问题呀,是下载有问题
回复
weicairong 2004-09-09
你贴的代码不全吧?
回复
chenxiangrong 2004-09-09
网上很多都是这样说的:
mySmartUpload.downloadFile(filePath,"multipart/form-data",fileName);
试试,

不过我试过,不行

smartUpload上传文本文件时经常出错,不过上传二进制文件就不会了。
回复
qyzj_wanghx 2004-08-30
把错误信息贴出来啊?
回复
xx_ch 2004-08-30
大家帮帮忙看看,我在线等
回复
xx_ch 2004-08-30
自己顶上来
回复
xx_ch 2004-08-30
贴出来了呀,你没看见?
java.lang.IllegalStateException: getOutputStream() has already been called for this response
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

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