救:JSP会了上传文件不会下载文件! 谁帮我? 谁有下载文件(可运行JSP)程序给个呀!!!!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <a href="test/javadoc.rar">下载</a>文件后缀不要有jsp,html <%@ page contentType="text/html;charset=GB2312" %><HTML><BODY><P>点击超链接下载Zip文档book.Zip <BR> <A href="loadFile.jsp">下载book.zip</a></Body></HTML> TO:xiongbing528(多情剑客无情剑)晕! 我要的就是loadFile.jsp文件呀! 那么多人不是已经回答你了么,用一个超链接就可以了。比如你现在有一个文件叫做a.zip,你要让用户下载,你用添加一个超链接,指向a.zip就可以了。<a href='....../a.zip'>下载文件</a>用户只要点这个链接就可以下载文件了。 写个下载servlet 配置一下就能用了import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.net.*;public class DownloadServlet extends HttpServlet { private String contentType = "application/x-msdownload"; private String enc = "utf-8"; private String fileRoot = ""; public void init(ServletConfig config) throws ServletException { String tempStr = config.getInitParameter("contentType"); if (tempStr != null && !tempStr.equals("")) { contentType = tempStr; } tempStr = config.getInitParameter("enc"); if (tempStr != null && !tempStr.equals("")) { enc = tempStr; } tempStr = config.getInitParameter("fileRoot"); if (tempStr != null && !tempStr.equals("")) { fileRoot = tempStr; } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //String filepath = request.getParameter("filepath"); String filepath = "test.txt"; String fullFilePath = fileRoot + filepath; File file = new File(fullFilePath); if (file.exists()) { String filename = URLEncoder.encode(file.getName(), enc); response.reset(); response.setContentType(contentType); response.addHeader("Content-Disposition", "attachment; filename=\"" + filename + "\""); int fileLength = (int) file.length(); response.setContentLength(fileLength); if (fileLength != 0) { InputStream inStream = new FileInputStream(file); byte[] buf = new byte[4096]; ServletOutputStream servletOS = response.getOutputStream(); int readLength; while (((readLength = inStream.read(buf)) != -1)) { servletOS.write(buf, 0, readLength); } inStream.close(); servletOS.flush(); servletOS.close(); } } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }} Orilly 和 Apache都有相应的包,网上搜索一下很多的。 怎么把随机数赋值到文本框里 急求!jsp关于数据库问题 tomcat 容器 里 可以 有多个 spring 上下文吗? 关于一个异常 JAVA API 中文帮助文档 奇怪的session问题 菜鸟问题,请大家帮忙 请大家帮忙解决下在Tomcat6.0连接sqlserver2005的时候jndi的配置问题?? 为什么会出现乱码? springboot服务器返回的json带转义字符斜杠\ 问题 关于JSF中selectManyCheckBox选项初始化的问题。 怎么得到我的WEB文件的虚拟路径
<HTML>
<BODY>
<P>点击超链接下载Zip文档book.Zip
<BR> <A href="loadFile.jsp">下载book.zip</a>
</Body>
</HTML>
晕! 我要的就是loadFile.jsp文件呀!
比如你现在有一个文件叫做a.zip,你要让用户下载,你用添加一个超链接,指向a.zip就可以了。<a href='....../a.zip'>下载文件</a>用户只要点这个链接就可以下载文件了。
import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;public class DownloadServlet extends HttpServlet {
private String contentType = "application/x-msdownload";
private String enc = "utf-8";
private String fileRoot = ""; public void init(ServletConfig config) throws ServletException {
String tempStr = config.getInitParameter("contentType");
if (tempStr != null && !tempStr.equals("")) {
contentType = tempStr;
}
tempStr = config.getInitParameter("enc");
if (tempStr != null && !tempStr.equals("")) {
enc = tempStr;
}
tempStr = config.getInitParameter("fileRoot");
if (tempStr != null && !tempStr.equals("")) {
fileRoot = tempStr;
}
} public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//String filepath = request.getParameter("filepath");
String filepath = "test.txt";
String fullFilePath = fileRoot + filepath; File file = new File(fullFilePath); if (file.exists()) {
String filename = URLEncoder.encode(file.getName(), enc);
response.reset();
response.setContentType(contentType);
response.addHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
int fileLength = (int) file.length();
response.setContentLength(fileLength); if (fileLength != 0) { InputStream inStream = new FileInputStream(file);
byte[] buf = new byte[4096]; ServletOutputStream servletOS = response.getOutputStream();
int readLength;
while (((readLength = inStream.read(buf)) != -1)) {
servletOS.write(buf, 0, readLength);
}
inStream.close();
servletOS.flush();
servletOS.close();
}
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}