前台jsp页面的javascript代码:
function download_file(){
document.location="<%=basepath%>/lpm/fileDownload-download.action?fileName=小刘.xlsx";
}
在GlobalName.properties中添加
download_dir=e:/datafile/
action类:
@Namespace("/lpm")
public class FileDownloadAction extends BaseAction {
//告诉浏览器数据是以下载的形式接收
private String contentType="application/octet-stream;charset=ISO8859-1";//动态下载,charset=ISO8859-1"中文文件名处理,转换成了ISO8859方式的西欧字符集。
//告诉浏览器数据将要下载的文件的文件名
private String contentDisposition="attachment;filename=";
//设置服务器读取文件的缓冲区大小
private String bufferSize="4096";
//前台提交过来需要下载的文件的文件名、路径
private String fileName;//文件的相对路径,形如:/download/系统说明.doc // 指定要被下载的文件路径
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public String getContentDisposition() {
return contentDisposition;
}
public void setContentDisposition(String contentDisposition) {
this.contentDisposition = contentDisposition;
}
public String getBufferSize() {
return bufferSize;
}
public void setBufferSize(String bufferSize) {
this.bufferSize = bufferSize;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
try {
this.fileName = new String(fileName.getBytes("ISO8859-1"), "GBK");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
// 通过 ServletContext,也就是application 来读取数据, 下载文件的来源流
public InputStream getInputStream() throws Exception {
String download_dir = GlobalName.getProperty("download_dir")+fileName;
//return getHttpSession().getServletContext().getResourceAsStream(fileName);
File file = new File(download_dir);
InputStream is = new FileInputStream(file);
return is;
}
@Action(value="fileDownload-download",
results={@Result(name="success",type="stream",
params={"contentType","${contentType}","inputName","inputStream","contentDisposition","${contentDisposition}","bufferSize","${bufferSize}"})
})
public String download() throws Exception {
// 下载文件源路径
String downloadFile = GlobalName.getProperty("download_dir")+fileName;
java.io.File file = new java.io.File(downloadFile);
if(!file.exists()){
return null;
}
String clientFilename= null;
//下载到客户端的文件名设置
try {
clientFilename = new String(fileName.getBytes(),"ISO8859-1");//中文文件名的处理(文件名中空格会被下划线代替,迅雷不支持)
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
this.setContentDisposition(this.getContentDisposition()+clientFilename);//设置输出的文件名, 文件名中含有”\“会被转为下划线
return SUCCESS;
}
}
分享到:
相关推荐
为了克服这一问题,开发人员通常会利用Ajax技术来实现异步文件下载,使得用户在下载文件的同时仍能保持页面的正常操作。本话题将详细探讨如何通过Ajax实现Java文件的下载,并介绍相关的核心概念和技术。 1. **Ajax*...
在本场景中,我们关注的是如何使用libcurl通过HTTP协议下载文件并实时显示下载进度。下面将详细介绍这个过程。 首先,我们需要理解libcurl的基本用法。libcurl提供了一系列的API函数,用于初始化、设置选项、执行...
利用chromedriver下载网络文件,下载的文件名下载时不可修改,通过查找最新文件,并对其改名、移动位置达到重命名的功能。
例如,一个节点可能需要将本地的文件上传到另一个节点,或者从其他节点下载文件。为了实现这种交互,你需要在每个节点上都配置HTTPClient,并且在服务端提供RESTful接口,处理文件上传和下载的逻辑。 **代码注释的...
在VB(Visual Basic)编程中,`URLDownloadToFile`是一个非常实用的API函数,它允许开发者从指定的URL下载文件到本地系统。这个函数属于Windows操作系统内置的`Wininet.dll`库,它提供了网络访问的功能,包括HTTP、...
在Android开发中,下载文件是一项常见的任务,尤其在构建应用时需要从服务器获取资源或更新数据。本"Android 下载文件Demo"旨在演示如何利用字节流进行文件下载操作。在Java和Android中,输入输出流(IO流)是处理...
用webservice作为服务器端,以流的方式实现文件的上传和下载,可以自动调用winrar进行压缩和加密,支持多线程和断点续传功能,默认是16K一个包,全部源码,已经在实际项目中应用。客户端有winform和服务两种方式的...
ASP.NET中提供可以在页面下载存储在后台的文件,很好用哦
【delphi阿里云对象存储OSS】支持 获取Bucket列表、设置Bucket权限)、创建Bucket、删除Bucket、获取文件列表、上传文件、下载文件、删除文件、读取文件、判断文件是否存在、创建目录、删除目录等功能。api接口文档...
在ASP.NET中,开发人员经常需要处理从远程服务器下载文件的需求,这可能涉及到通过URL或FTP协议访问资源。本文将详细讲解如何使用ASP.NET结合WebClient类来实现这个功能。 首先,我们需要理解URL(统一资源定位符)...
在本文中,我们将深入探讨如何在WPF应用中实现从网络下载文件并将其保存到本地指定路径。这个过程涉及到多个关键知识点,包括网络请求、文件流处理和UI更新。我们将结合给定的标题和描述来详细阐述这些概念。 首先...
8. **安全性考虑**:在实现HTTP文件下载时,还需关注安全问题,如使用HTTPS确保传输过程的安全,验证下载文件的完整性(例如通过校验和或数字签名)等。 9. **性能优化**:为了提高下载速度和用户体验,可能需要...
"Fish文库文档下载工具"的核心功能在于其对多种文档网站的兼容性,能够突破常规的在线预览限制,将文档转化为可本地存储的PDF文件。这样,用户就可以随时随地查阅,无需依赖网络连接,极大地提高了学习和工作的效率...
我们在项目中在下载文件会出现中文乱码,这个文档可以很好的解决乱码问题
下载:单击列表中的文件即可下载文件 分享:用户分享文件链接会生成提取码,其它用户进入该链接需输入提取码比对,正确的进入下载,错误的提取码不允许下载 会员分为普通会员与VIP超级会员。会员通过VIP激活码可以...
文档批量搜索下载工具主要针对OFFICE文档(包括Word、Excel、PowerPoint)和PDF格式文件的下载需求。用户通过这个工具可以快速定位并下载所需文档,极大地提高了文档处理的效率,尤其是对于那些频繁需要更新资料和...
接着,`下载文件进度条同步`涉及到网络编程和UI更新。在C#中,通常使用`WebClient`或`HttpClient`类进行文件下载。为了显示下载进度,我们需要使用`ProgressBar`控件,并配合异步编程(如`async/await`关键字)来...
4. **下载功能**:下载文件时,类会发送一个GET请求到指定URL,然后接收服务器返回的数据流。为了高效,可能需要支持断点续传,即记录已下载的部分并在下次继续下载。 5. **错误处理**:良好的封装类会提供详细的...
在线文档下载器可能使用此库来解析和处理从网站下载的PDF文件,确保用户可以本地存储和阅读这些文档。 “iDocDown.exe”是主程序执行文件,是在线文档下载器的核心部分。它包含了实现下载功能的算法和逻辑,能够...
3. 文件格式:下载的文档可能与原文档格式不同,例如,原本是PDF的文档可能会被转换成其他格式,这可能导致文档格式混乱或部分内容丢失。因此,下载后需要检查文档的完整性和阅读效果。 4. 效率与稳定性:虽然...