1、在servlet中实现文件的下载
public class OpenFileAction extends Action {
private final String ENCODING= "utf-8";
private final String CONTENT_TYPE = "text/plain;charset=utf-8";
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//设置字符编码
request.setCharacterEncoding(ENCODING);
//获取文件的名字
String fileName = request.getParameter("docName");
if(fileName == null || fileName.trim().equals("")){
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("The file which you specify is not exists!!");
out.close();
}else{//file exists
//下载文件的完整路径名
String filePath = request.getSession().getServletContext().getRealPath("/workflow/upload");
String fullFilename = filePath + "\\" + fileName;
System.err.println("下载的文件 = " + fullFilename);
//根据文件的类型设置response的contentType属性
String contentType = request.getSession().getServletContext().getMimeType(fullFilename);
if(contentType == null){
contentType = "application/octet-stream";
}
response.setContentType(contentType);
//设置response的头信息
response.setHeader("Content-disposition", "attachment;filename=" + new String(fileName.getBytes("gb2312"),"ISO_8859_1"));
//文件的输入输出流
InputStream is = null;
OutputStream os = null;
try{
is = new BufferedInputStream(new FileInputStream(fullFilename));
//定义输出的字节流
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//response输出流
os = new BufferedOutputStream(response.getOutputStream());
byte[] buffer = new byte[1024*4];
int length = 0;
while((length = is.read(buffer, 0, buffer.length)) != -1){
baos.write(buffer, 0, length);
}
os.write(baos.toByteArray());
}catch(Exception ex){
ex.printStackTrace();
}finally{
is.close();
os.close();
}
}
return null;
}
}
个人学习,欢迎参考
分享到:
相关推荐
本示例中,我们将探讨如何使用Java Servlet来实现文件的下载功能。 首先,理解HTTP协议是至关重要的,因为它定义了客户端(浏览器)与服务器之间的通信方式。在文件下载场景中,服务器需要响应一个HTTP请求,该请求...
综上所述,实现“jsp+servlet实现大型文件下载”涉及Servlet和JSP的基本使用,文件流操作,HTTP协议的理解,以及安全性和性能优化等多个知识点。通过理解并掌握这些,你可以构建出高效且安全的文件下载服务。
本项目的核心是实现文件下载功能,而不是在浏览器中显示文件内容,尤其针对迅雷这样的第三方下载工具进行优化。下面我们将深入探讨如何使用Java的这些技术来实现这一目标。 首先,`jsp`是Java的一个视图技术,主要...
在这个"Servlet 文件上传下载例子"中,我们将探讨如何使用Servlet实现文件的上传和下载功能,这对于构建一个简单的图片文件服务器至关重要。 1. **文件上传** - **MultipartRequest**: 在Servlet中,处理文件上传...
在这个场景中,我们关注的是如何使用Servlet来实现文件的上传和下载功能,同时结合Tomcat服务器和XML文件进行数据存储。以下是关于这些知识点的详细说明: 1. **Servlet**: Servlet是Java EE规范的一部分,它是一...
Servlet实现文件下载public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException{ String str = this.getServletContext().getRealPath("/download/隐形的翅膀 -...
### jsp+servlet实现文件上传下载 在现代Web开发中,文件上传下载是常见的功能之一。JSP(JavaServer Pages)与Servlet技术结合可以轻松实现这一功能。本篇将详细介绍如何利用jspSmartUpload组件实现文件的上传与...
本教程将详细讲解如何使用Servlet实现文件的上传和下载功能,其中涉及到的主要技术点包括Servlet API、Multipart解析以及文件流操作。 首先,我们需要了解Servlet在文件上传中的作用。Servlet在接收到客户端(通常...
Servlet的配置通常在Web应用的`web.xml`部署描述符文件中进行。这里可以设置Servlet的映射路径、初始化参数等。例如: ```xml <Servlet> <Servlet-name>MyServlet</Servlet-name> <Servlet-class>...
总之,通过Servlet实现多文件批量下载,主要涉及HTTP响应设置、文件流操作以及ZIP压缩技术。这个功能可以帮助用户更高效地下载多个文件,提升用户体验。希望这个示例对你和其他开发者有所帮助,节省寻找解决方案的...
要使用 Servlet 实现文件下载,首先需要在 web.xml 文件中配置 Servlet。通过配置 Servlet 的名称、类名和 URL 映射,Servlet 就可以被 Tomcat 服务器所调用。例如: ```xml <servlet> <servlet-name>DownloadFile...
通过以上步骤,你可以成功地在CKEditor 3.6.0中集成Servlet实现的文件上传功能。这个过程不仅适用于图片,还可以扩展到其他类型的文件,如文档、音频和视频。注意在实际应用中,根据服务器环境和项目需求进行相应的...
在本例中,我们关注的是如何利用 Servlet 来实现文件下载功能。文件下载是 Web 应用中常见的需求之一,例如用户需要下载文档、图片或视频等资源。通过 Servlet 实现文件下载可以提供更好的性能、安全性和用户体验。 ...
本篇文章将探讨如何使用Java Servlet实现在浏览器中打开PDF文件。首先,我们需要理解Servlet的工作原理和PDF文件的处理方式。 Servlet是Java编程语言中的一个接口,它定义了Web服务器与Java代码之间的交互方式。当...
在这个"Servlet文件下载项目"中,我们利用Servlet技术来实现文件的下载功能。这是一个非常实用的功能,尤其对于那些需要向用户提供文件下载服务的网站或应用。 首先,我们需要了解Servlet的基本工作原理。Servlet是...
本文将深入探讨如何在Servlet中实现文件的上传和下载功能,以及在页面上利用JSP和Javabean来实例化对象。 首先,文件上传是通过HTTP多部分请求(Multipart Request)来实现的。Servlet 3.0及以上版本提供了对这种...
"基于Servlet实现文件的上传与下载"是一个常见的实战任务,它涵盖了网络编程、多线程和文件I/O等多个核心概念。这里我们将深入探讨如何利用Servlet来实现这两个功能。 首先,让我们了解Servlet的工作原理。Servlet...
在这个项目中,我们重点关注的是Servlet如何实现文件上传、下载和缩略图的生成。 首先,让我们深入理解文件上传的过程。在Web应用中,文件上传通常通过HTML表单实现,使用`<input type="file" />`标签让用户选择要...
以上就是使用JSP和Servlet实现文件上传下载的基本流程和关键代码。在实际应用中,我们还需要考虑错误处理、安全性(如防止文件覆盖、上传恶意文件等)以及性能优化(如使用缓冲、断点续传等)。在大型项目中,可能还...
在这个场景中,"使用Servlet实现文件的下载"是一个常见的需求,特别是在构建动态网站时,用户可能需要下载服务器上的文件。以下是关于如何使用Servlet实现文件下载的详细步骤和知识点: 1. **创建Servlet**:首先,...