你这种方式只能用在本地!客户端是无法使用的,因为他会找客户机F:/web/src/jspSmartUpload.zip的文件,当然会找不到,要用服务器路径!即http://,或相对于当前页面的路径,前提是你指定的路径有此文件,就可以访问!
解决方案 »
- java 和 php 性能比较 望高手帮解惑
- 关于hibernate和struts 连接池问题
- 求高人指点:如何制作右键菜单让其显示在所有frame之上?
- 一个简单的问题
- hibernate 表的关系
- 关于文件上传到远程服务器得问题,急,在线等,高手指点一二????????????????????????????????????????????????
- [200高分]求:jsp把图片(jpg、gif)保存到oracle数据库的blob类型中,然后再显示!
- 在Struts 中 任何测试一个单独的Action?
- 为什么查询数据库时中文是乱码?
- ssm与TCP线程通信
- JSP环境配置大问题
- 程序不稳定?
就是这样写的,有什么问题啊?
<p><a href="http://182.168.1.1:8001/jspSmartUpload.zip">dsfdasfaf</a></p>
index.htm页面和下载文件jspSmartUpload.zip在同一个目录下。
例如此文件名是getfile.jsp
与此文件的同目录下有一个test.doc的word目录,则用
http://localhost/getfile.jsp?file=test.doc <%@page import="java.util.*"%>
<%@page import="java.io.*"%>
<%@page import="java.net.*"%>
<%
String filename = "";
if (request.getParameter("file") != null) {
filename = request.getParameter("file");
}
response.setContentType("application/msword");
response.setHeader("Content-disposition","attachment; filename="+filename);
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream(getServletContext().getRealPath("" + filename)));
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff,0,bytesRead);
}
} catch(final IOException e) {
System.out.println ( "³öÏÖIOException." + e );
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
//return;
%>