当前位置: 代码迷 >> Java Web开发 >> 在jsp页面下载文件解决办法
  详细解决方案

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

热度:155   发布时间:2016-04-17 10:58:05.0
在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>
  相关解决方案