在jsp页面下载文件
我想在jsp里面把一个已知路径的excel文件下载下来。就是在jsp里面有个按钮“下载”,点击后会弹出另存为对话框,选择路径后就可以吧这个excel文件下到指定位置,怎么实现啊。
[解决办法]
后台写一个通过迭代文件夹和文件生成树的东西,选择下载的时候弹出对话框,展示这个树给他,让他选择。选择后通过选择的节点,读取相应的文件给他。这个就靠你自己去写了
[解决办法]
按钮下载?
<button onclick="download();" value="下载"/>
<script type="text/javascript">
function download() {
window.location.href = "你的文件下载地址";
}
</script>
好像这样子就行了吧.
[解决办法]
等待高手解决问题 我也遇到了同样的问题!
[解决办法]
<a href="你的文件路径">下载</a> 这样就行
[解决办法]
[解决办法]
[解决办法]
//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>
好像这样子就行了吧.
最简单的实现方式