package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.WorkDownLoadBean;
/**
* Servlet implementation class WorkDownLoad
*/
public class WorkDownLoad extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public WorkDownLoad() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
WorkDownLoadBean download=new WorkDownLoadBean(request,response);
download.downLoad();
}
}
package bean;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import data.DataConn;
import data.Results;
public class WorkDownLoadBean {
private HttpServletResponse resp;
private HttpServletRequest req;
private File file=null;
private String name="";
public WorkDownLoadBean(HttpServletRequest request,
HttpServletResponse response) {
this.req=request;this.resp=response;
}
public void downLoad() {
getFile();
if(file.exists()){
FileInputStream fileInputStream=null;
try {
fileInputStream=new FileInputStream(file);
resp.setContentType("text/html");
ServletOutputStream out = resp.getOutputStream();
resp.setContentType("application/x-msdownload");
resp.setHeader("Content-Disposition", "attachment; filename=" + new String(name.getBytes("UTF-8"),"iso8859-1") + "");
if (fileInputStream != null) {
byte[] b = new byte[1024];
int i = 0;
while((i = fileInputStream.read(b)) > 0)
{
out.write(b, 0, i);
}
out.flush();
}
fileInputStream.close();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
System.out.println(file.getAbsolutePath() + " 文件不存在!");
return;
}
}
private void getFile(){
DataConn data=DataConn.getInstance();
String filepath=req.getRealPath("/");
int id=-1;
try {
String id_buf=new String(req.getParameter("id").getBytes("ISO8859_1"),"UTF-8").toString();
id=Integer.parseInt(id_buf.trim());
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
PreparedStatement call=null;
try {
call=data.getConnection().prepareStatement("call findworks(?)");
call.setInt(1, id);
ResultSet set=call.executeQuery();
while(set.next()){
filepath+=set.getString("link").substring(2).replace('/','\\');
name=set.getString("name");
}
System.out.print(filepath);
file=new File(filepath);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
### Servlet下载文件知识点详解 #### 一、Servlet简介与应用场景 Servlet是一种运行在服务器端的小程序,主要用于处理HTTP请求并生成动态网页。Servlet是Java Web开发的基础技术之一,广泛应用于构建动态网站和Web...
这篇博客"答Servlet下载文件的附件"可能涉及了如何利用Servlet来实现文件的下载功能,让我们深入探讨这个话题。 首先,我们需要了解Servlet生命周期中的service()方法。当一个HTTP请求到达服务器,Servlet容器(如...
这个链接会指向一个`servlet`,由`servlet`来处理实际的文件读取和下载逻辑。 1. **创建Servlet**:首先,我们需要创建一个自定义的`servlet`,例如`FileDownloadServlet`。在`src`目录下的Java源代码文件中,我们...
在Servlet中实现文件下载是一项常见的任务,这通常涉及到将服务器上的文件发送到客户端的浏览器,以便用户可以保存到本地。以下是对Servlet下载文件这一主题的详细阐述。 首先,理解Servlet的工作原理至关重要。...
本示例中,我们将探讨如何使用Java Servlet来实现文件的下载功能。 首先,理解HTTP协议是至关重要的,因为它定义了客户端(浏览器)与服务器之间的通信方式。在文件下载场景中,服务器需要响应一个HTTP请求,该请求...
自己用servlet写的文件上传及下载功能带进度条 主要用到两个jar:commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar 内容介绍: com.fm.FileManagerService:一个servlet用来实现主要的文件上传下载逻辑的 ...
结合JSON(JavaScript Object Notation)和Servlet,我们可以实现一个高效且用户友好的文件下载系统。以下是对这个"ajax+json+servlet下载"主题的详细解释。 首先,我们需要理解Ajax的核心原理。Ajax通过...
在这个"Servlet 文件上传下载例子"中,我们将探讨如何使用Servlet实现文件的上传和下载功能,这对于构建一个简单的图片文件服务器至关重要。 1. **文件上传** - **MultipartRequest**: 在Servlet中,处理文件上传...
在这个"Servlet文件下载项目"中,我们利用Servlet技术来实现文件的下载功能。这是一个非常实用的功能,尤其对于那些需要向用户提供文件下载服务的网站或应用。 首先,我们需要了解Servlet的基本工作原理。Servlet是...
Servlet 下载文件实现代码详解 在本文中,我们将详细介绍 servlet 下载文件的实现代码,旨在为读者提供一个可靠的参考资源。 Servlet 下载文件的概念 Servlet 下载文件是指将服务器端的文件传输到客户端的过程。...
特别是在企业级应用中,用户经常需要下载诸如报告文档、数据备份等文件。Java Servlet作为一种强大的服务器端技术,可以很好地实现这一功能。本文将详细介绍一个基于Servlet的文件下载代码示例,并对其实现原理进行...
本文将深入探讨如何在Servlet中实现文件的上传和下载功能,以及在页面上利用JSP和Javabean来实例化对象。 首先,文件上传是通过HTTP多部分请求(Multipart Request)来实现的。Servlet 3.0及以上版本提供了对这种...
Servlet技术广泛应用于文件上传和下载的功能实现,因为它们可以方便地与客户端交互并处理数据流。在本例中,我们将深入探讨如何使用Servlet来实现文件上传和下载功能。 首先,让我们了解文件上传的基本流程。当用户...
总结来说,实现Servlet文件上传下载需要理解Servlet生命周期、HTTP请求处理、多部分数据解析以及文件I/O操作。Apache Commons FileUpload库简化了这一过程,但理解其背后的原理对于解决可能出现的问题和优化性能至关...
jsp、servlet 文件上传下载技术详解 文件上传下载是 Web 应用中的一种常见需求,使用 jsp 页面和 servlet 实现文件上传下载是其中的一种解决方案。下面将详细介绍 jsp、servlet 文件上传下载技术。 文件上传下载...
在IT行业中,文件上传与下载是Web应用中常见的功能,特别是在企业级系统中,例如文档管理系统、在线教育平台等。Servlet作为Java Web开发中的一个重要组件,常被用来处理这些操作。下面将详细介绍如何使用Servlet...
这个中文版的Servlet帮助文档是开发者学习和理解Servlet技术的重要资源。文档详细介绍了Servlet API的使用,涵盖了从基础概念到高级特性的全方位知识。 首先,Servlet是Java EE(现在称为Jakarta EE)的一部分,它...
"基于Servlet实现文件的上传与下载"是一个常见的实战任务,它涵盖了网络编程、多线程和文件I/O等多个核心概念。这里我们将深入探讨如何利用Servlet来实现这两个功能。 首先,让我们了解Servlet的工作原理。Servlet...
【AjaxSubmit+Servlet实现表单文件上传与下载详解】 在Web开发中,文件上传和下载是常见的功能,尤其是在用户交互丰富的应用中。本项目【Demo Project】利用AjaxSubmit结合Servlet技术,提供了一种高效、异步的方式...