文件下载1
package com.hss.esale.action.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URLDecoder;
import java.net.URLEncoder;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import com.hss.esale.action.common.Constants;
/**
* 模块名:资源文件下载
* @author 黄侨红
*
*/
public class DownLoadFileController extends AbstractController {
private static final Log log = LogFactory.getLog(DownLoadFileController.class);
private static final String CONTENT_TYPE = "application/x-msdownload";
private String uploadFilePath; //文件存储硬盘地址
public void setUploadFilePath(String uploadFilePath) {
this.uploadFilePath = uploadFilePath;
}
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
request.setCharacterEncoding(Constants.UTF_8);
/**取文件格式名*/
String fileName = URLDecoder.decode(request.getParameter("filePath"), "UTF-8");
if(fileName.equals("pointsCardApplication.doc")){
fileName=URLDecoder.decode("积分卡申请表.doc", "UTF-8");;
}
/**文件存放完整路径*/
String fullFilePath = uploadFilePath + fileName;
log.info(fullFilePath);
/**读取文件*/
File file = new File(fullFilePath);
/**如果文件存在*/
if (file.exists()) {
String filename = URLEncoder.encode(file.getName(), Constants.UTF_8);
response.reset();
response.setContentType(CONTENT_TYPE);
response.addHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
int fileLength = (int) file.length();
response.setContentLength(fileLength);
/**如果文件长度大于0*/
if (fileLength != 0) {
/**创建输入流*/
InputStream inStream = new FileInputStream(file);
byte[] buf = new byte[4096];
/**创建输出流*/
ServletOutputStream servletOS = response.getOutputStream();
int readLength;
while (((readLength = inStream.read(buf)) != -1)) {
servletOS.write(buf, 0, readLength);
}
inStream.close();
servletOS.flush();
servletOS.close();
}
}
return null;
}
}
文件下载2
@RequestMapping("/download.htm")
public ModelAndView download(HttpServletRequest request,
HttpServletResponse response) throws Exception {
File file = new File("D:\\test\\abc.ppt");
response.setContentType("application/vnd.ms-powerpoint");
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bis.close();
bos.close();
return null;
}
分享到:
相关推荐
fmxLinux1.6 for Delphi 10 资源文件下载 简介 本仓库提供了一个名为 fmxLinux1.6 for delphi10 的资源文件下载。该资源文件专为 Delphi 10 开发 Linux 跨平台应用而设计。通过使用此资源文件,您可以轻松地在 ...
EhLib Delphi 12 资源文件下载 资源描述 本仓库提供 EhLib.VCL 11.1 Build 11.1.008 评估版本的下载。该库包含了适用于 Borland Delphi 和 C++ Builder 2009 至 XE12 以及 Lazarus 的组件和类。 目录 概述 安装库 ...
TMS FlexCel VCL & FMX v7.8 for Delphi 11 资源文件下载 本仓库提供了一个资源文件的下载,该资源文件为 TMS FlexCel VCL & FMX v7.8 for Delphi 11。 资源描述 该资源文件经过亲自测试,在Delphi 11上成功安装。...
【rtfd资源文件详解】 RTFD(Rich Text Format with Figures, Tables and more)是一种由Apple公司开发的文档格式,主要用于macOS系统中的Pages、Numbers和Keynote等应用程序。这种格式结合了富文本和多种媒体元素...
vsd资源文件
mycat2 资源文件
根据提供的信息,我们可以推断出该文档主要涉及的是影视资源分享以及一种名为“汉魅解密”的技术或方法。然而,由于描述中的信息并不清晰,我们只能从标题、标签及部分内容进行推测。以下是对这几个部分可能包含的...
1.在本文档中记录Unity中可直接使用的Shader Graph各种效果的资源文件下载方式,后续有更新也会直接进行修改链接中的内容,不会影响资源的下载使用。 2.该资源中包含多种Shader Graph的效果文件,后续也会继续更新更...
社交 直播 svga动画 资源文件包 座驾礼物 特效文件 下载-荧光棒
【原创力文档下载工具】利用Python下载原创力文档是一个典型的Web爬虫应用场景,它涉及到Python编程语言、网络请求、文件处理以及可能的HTML解析技术。在这个项目中,开发者使用Python来自动化获取并下载原创力平台...
3ds游戏文件(游戏资源软件下载资料).zip
这些工具能够解析百度文库的页面,抓取文档内容并将其转换成本地文件。使用这类工具时,用户需要复制百度文库文档的网页链接,然后粘贴到工具的输入框内,按照提示进行操作。值得注意的是,这种方法可能受制于网站的...
本资源提供了两个H264测试文件,分别对应1080P和720P两种分辨率,用于测试和验证视频处理软件或硬件对H264编码的支持程度。以下是关于H264、FFMPEG以及这两个分辨率的一些详细知识点: 1. H264(也称为AVC,...
"资源下载站源码"特指这个源码是为一个专门提供资源下载的网站设计的,可能涵盖了图片、音频、视频、文档等多种类型的文件。"源码上传源码下载站源码"意味着这个源码还支持用户自行上传和分享他们的源代码,这可能是...
针对这种情况,出现了“豆丁网文档资源免费下载器”,如标题所示,这款软件的主要功能就是帮助用户绕过豆丁网的积分系统,免费下载文档。 "豆丁免积分"这一标签进一步强调了这款下载器的主要特点,即无需豆丁网的...
可以播放的amr文件,供需要的朋友下载,是龚玥唱的步步高,其中是我经过编码转换成的
P2P资源嗅探工具能够帮助用户快速定位到网络上公开分享的文件,如电影、音乐、软件、文档等。P2PSearcher 就是一款这样的工具,专门用于搜索P2P网络上的资源。 P2PSearcher 并不是一个下载工具,它仅提供资源搜索...
在IT行业中,资源下载是日常工作中必不可少的一部分,无论是学习、工作还是娱乐,我们常常需要从互联网上获取各种类型的文件,如文档...对于那些频繁处理文档下载的用户来说,这样的工具无疑是提高工作效率的一大利器。
标题中的“百度文库资源免费下载工具”是指一种软件或应用程序,它的主要功能是帮助用户无需付费或通过其他复杂方式,就能从百度文库中获取文档资源。百度文库是中国一个知名的在线文档分享平台,拥有大量的学习资料...
它能够智能地抓取网站上的图片、CSS样式表、JavaScript文件、HTML文档以及其他各种媒体文件,同时自动构建与原始网站相似的本地目录结构,使得用户可以在本地系统上方便地浏览和使用这些资源。 首先,我们来了解...