从服务器上下载txt文件后,txt文件比源文件多了html的内容。

djwdjw 2007-03-26 02:18:29
程序如下:
FileInputStream fis = new FileInputStream(new File("c:\\test.txt"));
//response.setContentType("applicaton/x-filter");
response.setHeader("Content-Disposition", "attachment;filename=test.txt" );
response.setHeader("Content-Length", String
.valueOf(fis.available()));
ServletOutputStream sos = response.getOutputStream();
byte[] buffer = new byte[1024];
int location = 0;
while ((location = fis.read(buffer)) != -1) {
sos.write(buffer, 0,location);
}
fis.close();
sos.flush();
sos.close();

c:\\text.txt文件内容为abc,但下载到本地上文件的内容如下:
abc
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<HTML>
<HEAD>



<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<META name="GENERATOR" content="IBM Software Development Platform">
<META http-equiv="Content-Style-Type" content="text/css">
<LINK href="../theme/Master.css" rel="stylesheet" type="text/css">
<TITLE>Download.jsp</TITLE>
<LINK rel="stylesheet" type="text/css" href="../theme/stylesheet.css"
title="Style">
</HEAD> <BODY> </BODY></HTML>
请问各位高手,如何解决?如何去掉自动添加的html的部分?
...全文
462 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
craig_wolfdon 2007-03-26
  • 打赏
  • 举报
回复
归跟结底问题是:response.reset()
liaohaiying 2007-03-26
  • 打赏
  • 举报
回复
<%@ page contentType="text/html; charset=gb2312" %><%@ page import="java.io.*" %><%
String fileName = "kkk.txt";
InputStream inStream=new FileInputStream("E:/liaohaiying/cp/kk.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();
%>
djwdjw 2007-03-26
  • 打赏
  • 举报
回复
response.setContentType(”APPLICATION/OCTET-STREAM”); 这个方法不行.

to xp1204(深圳不是个好地方,我却还是要待下去) :
那如何自动弹出下载对话框?
djwdjw 2007-03-26
  • 打赏
  • 举报
回复
在JSP里使用.
yangjf 2007-03-26
  • 打赏
  • 举报
回复
是在jsp中还是servlet里面写的?
yeah920 2007-03-26
  • 打赏
  • 举报
回复
楼上的都说明了。我只能帮顶。
许飘大叔 2007-03-26
  • 打赏
  • 举报
回复
ServletOutputStream sos = response.getOutputStream();
servlet中的当然会是标准的html了

直接用输出流就好了
accsk3188 2007-03-26
  • 打赏
  • 举报
回复
简单 明了 <a href
shan1119 2007-03-26
  • 打赏
  • 举报
回复
response.setContentType(”APPLICATION/OCTET-STREAM”);
www203 2007-03-26
  • 打赏
  • 举报
回复
ServletOutputStream sos = response.getOutputStream();
sos.clear()或者什么的
清空一下buffer
craig_wolfdon 2007-03-26
  • 打赏
  • 举报
回复
顶一下,学习,
xuxiong7 2007-03-26
  • 打赏
  • 举报
回复


给大家推荐个

好的技术群  大家一起学习啊

31443944

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧