之前自己做的上传文件,可以上传上去,当上传.rar文件的时候,会出现我们电脑里用到的下载工具来进行下载,当你点确定下载的时候是可以下载的,但是当你点取消的时候,它会打开一个页面,里面全是乱码。这是为什么呢?急需。
在.jsp页面中我是这样写的:
<a target="blank" href="<%=".."+Commons.uploadDocDir+doc7%>"><%="成果"%></a>
在.jsp页面中我是这样写的:
<a target="blank" href="<%=".."+Commons.uploadDocDir+doc7%>"><%="成果"%></a>
class="com.hangzhoubank.client.PageBreak" /> 是自己写的连接池 <%@page contentType="text/html;charset=utf-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@page language="java"%>
<%@page import="java.util.*"%>
<%@page import="java.net.*"%>
<%@page import="java.io.*"%>
<%@page session="false"%>
<%@page import="java.sql.*"%>
<jsp:useBean id="DBConnection" scope="page"
class="com.hangzhoubank.client.PageBreak" />
<%
//关于文件下载时采用文件流输出的方式处理:
//加上response.reset(),并且所有的%>后面不要换行,包括最后一个;
String filedownload = "";
String filedisplay = "";
String realPath=request.getRealPath("/");
String bookid=request.getParameter("bookid");
if(!bookid.matches("^\\d{1,6}$")){
bookid = "1";
}
String bookSql = "select * from cdt_book where id="+bookid;
ResultSet bookRs = DBConnection.executeQuery(bookSql);
while(bookRs.next()){
filedownload=realPath+bookRs.getString("fileurl");
filedisplay=bookRs.getString("fileurl");
}
//response.reset();//可以加也可以不加
response.setContentType("application/x-download");
filedisplay = URLEncoder.encode(filedisplay,"UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);
OutputStream outp = null;
FileInputStream in = null;
try
{
outp = response.getOutputStream();
in = new FileInputStream(filedownload);
byte[] b = new byte[1024];
int j= 0;
while((j = in.read(b)) > 0)
{
outp.write(b, 0, j);
}
outp.flush();
out.clear();
out = pageContext.pushBody();
}
catch(Exception e)
{
// e.printStackTrace();
}
finally
{
if(in != null)
{
in.close();
in = null;
}
if(outp != null)
{
outp.close();
outp = null;
}
}
%>