<a href="xxx.zip">download</a>
解决方案 »
- 对数组的操作 ,很急 在线等
- 求教高手个头疼的问题....
- 如何销毁session?
- 懂hibernate的进来,十万火急
- 在Servlet的服务器端增加和删除Cookie
- 在JSP中如何在输完一个EDIT后按回车有在下方自动出现一个新的EDIT?
- 请帮我看看代码错在哪里了?
- 100分,jspsmartupload大家帮忙看看这里http://expert.csdn.net/Expert/topic/1274/1274742.xml?temp=.527218
- 帮忙看看这是个什么错误啊?
- 数组的传递问题
- 关于上传下载问题
- 好人,帮帮我啊!送高分,JSP如何将SQLSERVER中image数据存入到数据库,以及如何读取,很急很急很急的!
http://www.jspsmart.com/scripts/download/downloadfree.asp?product=jspSmartUpload&L=EN
如果普通文件下载的话,<a href="filename">download</a>就可以啊。
如果下载数据库大字段,可以用读取二进制流的方式。
也可以用上传下载组件。
但如果系统能够识别(txt等))<a href="xxx.zip">download</a>就会直接在ie打开
此时需要:在文件头上加上:
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition","attachment; filename=" + filepath + filename);
public class FileDownLoad { public FileDownLoad() {
}
public void fileDown(String aFileName,javax.servlet.http.HttpServletResponse response) throws Exception {
java.io.BufferedInputStream iin;
BufferedOutputStream dout;
try {
File ff=new File(aFileName);
if(!ff.exists()){
throw new Exception("对不起! 您下载的文件不存在");
}else{
byte[] buffer;
int length=(new Long(ff.length())).intValue();
buffer=new byte[length];
try{
iin=new BufferedInputStream(new java.io.FileInputStream(ff));
//设置类型和头信息
response.setContentType( "application/octet-stream" ); // MIME type for pdf doc
int pos=aFileName.lastIndexOf("/");
aFileName=aFileName.substring(pos+1);
response.setHeader("Content-disposition", "attachment; filename="+aFileName);
//传送数据
dout = new BufferedOutputStream( response.getOutputStream());
int once = 0;
int total = 0;
while ((total<length) && (once>=0)) {
once = iin.read(buffer,total,length);
total += once;
dout.write(buffer,0,length);
}
if(iin!=null){ iin.close();}
if(dout!=null){ dout.close();}
}catch(Exception ex){
throw new Exception("文件下载过程中出现错误! ");
}
}
}catch(Exception ex) {
throw new Exception("文件下载过程中出现错误! ");
}
}
}
--------------------
<%@ page import="java.io.*,SqlData,FileDownLoad,Utility,java.util.*"%><%@ page language="java" contentType="text/html;charset=gb2312"%><jsp:useBean id="fload" scope="page" class="FileDownLoad" /><%String username="";if (session.getValue("username")==null){%><script>window.open("/mail/webmail/login.htm","_top");</script><%}else{username=session.getValue("username").toString();}String cd=request.getRequestURI();cd=cd.substring(cd.lastIndexOf('/')+1);String path=application.getRealPath(cd);int lastSlash=path.lastIndexOf('\\');path=path.substring(0,lastSlash);String filename=path+"/mail/affix/"+username+"/"+request.getParameter("affixname");if(filename!=null) fload.fileDown(filename,response);%>
------------------
<a href="+java.net.URLEncoder.encode(RS.getString("filename"))+">RS.getString("filename")
download.jsp文件,请不要用硬回车,要一行写下来,修改相应的路经传递给FILEDOWNLOAD类就可以了