首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

在jsp页面下载文件解决办法

2012-03-16 
在jsp页面下载文件我想在jsp里面把一个已知路径的excel文件下载下来。就是在jsp里面有个按钮“下载”,点击后

在jsp页面下载文件
我想在jsp里面把一个已知路径的excel文件下载下来。就是在jsp里面有个按钮“下载”,点击后会弹出另存为对话框,选择路径后就可以吧这个excel文件下到指定位置,怎么实现啊。

[解决办法]
后台写一个通过迭代文件夹和文件生成树的东西,选择下载的时候弹出对话框,展示这个树给他,让他选择。选择后通过选择的节点,读取相应的文件给他。这个就靠你自己去写了
[解决办法]
按钮下载?
<button onclick="download();" value="下载"/>
<script type="text/javascript">
function download() {
window.location.href = "你的文件下载地址";
}
</script>
好像这样子就行了吧.
[解决办法]
等待高手解决问题 我也遇到了同样的问题!
[解决办法]
<a href="你的文件路径">下载</a> 这样就行
[解决办法]

探讨

这个文件地址要怎么写呢,如果从客户端下载服务器上面的文件,这个地址就不行了吧?

[解决办法]
探讨
按钮下载?
<button onclick="download();" value="下载"/>
<script type="text/javascript">
function download() {
window.location.href = "你的文件下载地址";
}
</script>
好像这样子就行了吧.

[解决办法]
//servlet代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FileDown extends HttpServlet {
public FileDown() {
super();
}

public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.addHeader("Content-Disposition", "attachment;filename="
+ new String("送.txt".getBytes("GBK"),"ISO8859_1"));
response.setContentType("text/html");
PrintWriter out = response.getWriter();
FileInputStream in = null;
File f = new File("C:\\送.txt");

try {
in = new FileInputStream(f);
byte b[] = new byte[1024];
while (in.read(b, 0, 1024) != -1) {
out.write(new String(b, "ISO8859_1"));
}
in.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

out.flush();
out.close();
}

public void init() throws ServletException {

}

}

[解决办法]
//web.xml
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>FileDown</servlet-name>
<servlet-class>FileDown</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>FileDown</servlet-name>


<url-pattern>/servlet/FileDown</url-pattern>
</servlet-mapping>
[解决办法]
你可以Google一下FileUpload相关的文章,网上都有很详细的解答的。
[解决办法]
个人认为超链接不可靠
现在的情况是只要能拿到文件的路径,即便是从客户端下载服务器上的文件,
只要文件存在,就能下载,数据库一般都会存在文件上传的地址的,你只需要拿到就行了
拿到文件地址,直接把文件地址传到jsp页面,jsp页面如下

HTML code
<body>       <%           String path="";           if(request.getAttribute("filedownPath")!=null){               path=request.getAttribute("filedownPath").toString();               File file = new File(path);               if (file.exists()) {                  SmartUpload su = new SmartUpload();                  su.initialize(pageContext);                  //保证点击链接后是下载文件              //浏览器将用acrobat打开。              su.setContentDisposition(null);              su.downloadFile(path);              out.clear();              out=pageContext.pushBody();            }else{            %>                <script type="text/javascript">                       alert("对不起,您下载的文件不存在或已删除");                       window.history.go(-1);                   </script>            <%               }           }        %>  </body>
[解决办法]
word excle等文档文件直接
<a href='文件路径'>下载</a>
就OK,虽然不知道有什么坏的影响,但我一直是这么用的
[解决办法]
一个超链就行了,<a href=‘路径'>下载</a>
[解决办法]
按钮下载?
<button onclick="download();" value="下载"/>
<script type="text/javascript">
function download() {
window.location.href = "你的文件下载地址";
}
</script>
好像这样子就行了吧.
最简单的实现方式

热点排行