JSP工具之,文件下载
<% String filePath = request.getParameter("filePath"); filePath = URLDecoder.decode(filePath, "UTF-8"); String fileName = request.getParameter("fileName"); fileName = URLDecoder.decode(filePath, "UTF-8"); out.clear(); if(filePath==null || "".equals(filePath)){ response.getWriter().write("{success:false}"); }else{ File downFile = new File(filePath); if(downFile.exists() && downFile.isFile()){ String mimeType = null;//媒体类型 boolean isInline = false;//是否要在浏览器打开 mimeType = application.getMimeType(filePath); if(mimeType==null) mimeType = "application/octet-stream;charset=iso8859-1"; response.setContentType(mimeType); String ua = request.getHeader("User-Agent");//获取终端类型 if(ua==null) ua = "User-Agent:Mozilla/4.0(compatible;MSIE 6.0;)"; boolean isIE = ua.toLowerCase().indexOf("msie")!=-1; if(isIE && ! isInline){ mimeType = "application/x-msdownload"; } String downFileName = new String(fileName.getBytes(),"iso8859-1"); String inlineType = isInline ? "inline" : "attachment"; response.setHeader("Content-Disposition", inlineType+";filename=\""+downFileName+"\""); response.setContentLength((int) downFile.length()); byte[] buffer = new byte[4096]; BufferedOutputStream output = null; BufferedInputStream input = null; try{ output = new BufferedOutputStream(response.getOutputStream()); input = new BufferedInputStream(new FileInputStream(downFile)); int n = -1; while((n=input.read(buffer,0,4096))>-1){ output.write(buffer,0,n); } response.flushBuffer(); }catch(Exception e){ }finally{ if(input != null) input.close(); if(output != null) output.close(); } }else{ response.getWriter().write("{\"success\":false}"); } }%> //这里不能换行,否者会报错,原因解析的时候会当初输出流
相关推荐
在Java和JSP中,实现文件下载是一项常见的任务,它涉及到服务器与客户端之间的交互,以及对文件流的处理。下面将详细讲解如何使用Java和JSP来实现这一功能。 首先,我们从`downloadtool.jsp`开始,这是一个用户界面...
总的来说,JSP文件下载涉及服务器端的文件处理、HTTP响应头的设置以及客户端的交互。理解和掌握这一过程对于开发功能完善的Web应用程序至关重要,特别是在教育、媒体分享或其他需要提供资源下载的领域。
在这个场景下,`jspsmart`组件是一个流行的选择,它简化了JSP文件下载的流程,使得配置和使用变得更加便捷。 `jspsmart`组件主要提供了以下功能: 1. **流式下载**:jspsmart组件允许文件内容以流的形式传输到...
本教程将通过一个具体的“jsp文件下载实例”来讲解如何在JSP页面上实现文件下载功能,同时也会涉及到Servlet的作用。 首先,我们需要理解JSP的基本原理。JSP是一种视图技术,它允许开发者将HTML代码与Java代码混合...
在这个场景下,我们关注的是如何在JSP页面中实现文件的下载功能。这个功能在很多网站上都常见,例如提供文档、软件或其他资源的下载服务。下面我们将详细探讨如何实现这一功能。 首先,为了创建一个下载链接,你...
在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...
"JSP实现文件上传与下载" JSP(Java Server Pages)是一种动态网页技术,用于开发基于Web的应用程序。...JSP文件上传和下载是Web应用程序中常用的功能,需要注意文件上传和下载的安全性、性能和可扩展性。
在IT行业中,JSP(JavaServer Pages)是一种用于创建...通过分析这些文件,你可以进一步了解JSP文件下载的具体实现细节,以及如何与服务器的文件系统交互。记住,安全性和用户体验是设计下载功能时必须兼顾的重要因素。
下面,我们将深入探讨如何在JSP中实现文件上传和下载。 首先,我们需要了解HTTP协议中的POST请求在文件上传中的作用。在JSP中,文件上传通常涉及到表单(form)元素,特别是`<input type="file">`标签,它允许用户...
JSP文件通常由HTML、CSS、JavaScript以及嵌入的Java代码组成。在JSP中,我们使用`<% %>`或`<%= %>`等标签来编写Java代码,这些代码会被服务器执行并将其结果输出到生成的HTML页面上。 在这个"DownloadFile"项目中,...
标题:JSP文件下载的解决方法 描述:本文将探讨并提供多种方法来解决JSP文件下载的问题,重点介绍源代码级别的实现方案。 在Web开发中,文件下载是常见的需求之一,尤其在企业级应用中,用户可能需要下载报告、...
以下是一个简单的JSP文件下载示例: ```jsp String fileName = "path/to/your/file.txt"; response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); response.setHeader(...
文件下载的应用场景非常广泛,例如下载文档、图片、视频等文件。在本代码中,我们使用了jsp页面来实现文件下载,该代码适用于jsp、struts、spring或ssh三个框架中。 7. 代码优化 代码优化是指对代码进行优化,以...
"基于jsp的文件上传下载"是Web应用程序中的常见需求,涉及到客户端与服务器之间的数据交互。本项目详细阐述了如何利用JSP实现文件的上传和下载功能。 首先,文件上传涉及的主要技术有HTML表单、Servlet和多部分请求...
在实际的JSP文件下载过程中,通常会涉及以下几个关键知识点: 1. **文件路径处理**:JSP需要知道文件在服务器上的具体位置,这通常通过相对或绝对路径来实现。源码中可能会有一个变量或常量存储文件的服务器路径。 ...
下面是一步步实现JSP文件下载的步骤: 1. 引入jspSmartUpload.jar:在你的项目中,需要引入这个库。通常是将jar文件放在WEB-INF/lib目录下,然后在JSP页面中通过`<jsp:useBean>`标签导入SmartUpload类。 ```jsp ...
本文档将详细介绍如何使用Java Server Pages (JSP) 实现从服务器端下载Excel文件到客户端的过程。 #### 二、准备工作 1. **环境配置**: - Java 开发工具包 (JDK) - Apache Tomcat 或其他支持 JSP 的 Web 服务器...
总结来说,JSP文件上传下载是通过SmartUpload库实现的,它简化了文件操作的复杂性,使得开发者能更专注于业务逻辑。通过理解和实践SmartUpload的用法,你将能够为你的Web应用添加这一关键功能。同时,理解文件上传...