异常:ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error
解决办法:<a href="#" onclick="download()">在firefox中要去掉href="#"
jsp:
function download() {
loginForm.method.value="download";
loginForm.submit();
}
<a onclick="download()">下载PDF文件</a>
action:
public ActionForward download(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
OutputStream fos = null;
InputStream fis = null;
try{
String path = "D:/Coder Software/MyEclipse 6.5/workspace/struts1.3/web/WEB-INF/pdf/b14233.pdf";
// File file = new File(path);
//
// fis = new FileInputStream(file);
// bis = new BufferedInputStream(fis);
//
// fos = response.getOutputStream();
// bos = new BufferedOutputStream(fos);
//
// response.setHeader("Content-disposition",
// "attachment;filename=" +
// URLEncoder.encode(path, "utf-8"));
// int bytesRead = 0;
//
// byte[] buffer = new byte[8192];
//
// while ((bytesRead = bis.read(buffer, 0, 8192)) != -1) {
// bos.write(buffer, 0, bytesRead);
// }
// bos.flush();
// fis.close();
// bis.close();
// fos.close();
// bos.close();
BufferedInputStream in = new BufferedInputStream(new FileInputStream(path));
byte[] b = new byte[1024];
int len=0;
response.reset();
response.setHeader("Content-Disposition", "attachment;" + "filename=" + URLEncoder.encode(path, "utf-8"));
// response.setContentType("application/x-msdownload");
ServletOutputStream out=response.getOutputStream();
while((len=in.read(b))!=-1){
out.write(b,0,len);
}
out.flush();
in.close();
out.close();
}catch(Exception ex) {
ex.printStackTrace();
}
return null;
}
分享到:
相关推荐
在Struts1中实现文件上传功能,常常是Web开发中的一个常见需求。而“带进度条”的文件上传则更进一步,它能为用户提供更好的用户体验,让用户在上传大文件时能够看到实时的上传进度。 首先,我们来理解一下Struts1...
### Struts1 实现文件上传的关键技术点 在Struts1框架中实现文件上传功能是一项常见但又具有一定技术挑战的任务。下面将详细解析文件上传的实现过程,包括关键类的使用、文件处理逻辑以及异常处理等方面。 #### ...
Struts1的fileupload的文件上传
本实例主要探讨如何在Struts1中实现多文件上传功能,并结合Form中传递List类型的数据,这对于理解MVC模式下的文件处理和数据传递有重要作用。我们将深入讨论以下几个关键知识点: 1. **Struts1框架基础**: Struts...
在这个“Struts1实现文件上传源码”实例中,我们将深入探讨如何利用Struts1框架来处理文件上传操作。 在Web应用中,文件上传功能是非常常见的,比如用户上传头像、提交文档等。Struts1提供了ActionForm类和一系列...
在这个“Struts1实现的文件上传”项目中,我们将深入探讨如何在Struts1框架下实现文件上传功能,并不涉及文件下载的部分。 首先,理解文件上传的基本流程是至关重要的。在Web应用中,用户通过HTML表单选择本地文件...
### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...
在Struts1中,文件上传功能通常依赖于Apache Commons FileUpload库。下面将详细阐述Struts1中的文件上传实现及其相关知识点。 1. **Apache Commons FileUpload库** Commons FileUpload是Apache的一个子项目,专门...
在处理文件上传时,Struts1提供了相应的支持,但默认情况下,它只能处理单个文件的上传。要实现多个文件的同时上传,我们需要利用一些额外的工具或库来扩展Struts1的功能。 在描述中提到的"jquery multi"可能是指...
在本文中,我们将探讨如何使用Struts1框架实现文件的批量上传功能。Struts1是一个经典的Java Web应用程序框架,它提供了模型-视图-控制器(MVC)架构,用于构建动态Web应用。在Struts1中实现文件上传,我们需要考虑...
Struts1是一个经典的Java Web框架,它在处理用户请求和业务逻辑方面表现出色,尤其是在文件上传功能上。本文将深入探讨Struts1中的文件上传,包括单文件上传、多文件上传,以及解决文件名乱码和重名冲突等问题。 1....
Struts1和Struts2是两个非常著名的Java Web框架,它们都提供了处理文件上传和下载的功能,但实现方式有所不同。本文将深入探讨这两个框架在文件操作方面的具体实现。 首先,让我们了解一下Struts1中的文件上传功能...
Struts2 和 Struts1 是两个著名的 Java Web 开发框架,它们都出自 Apache Software Foundation,但有着显著的区别。Struts1 是早期的 MVC 框架,而 Struts2 则是在 WebWork 框架的基础上发展起来的,它吸收了 Struts...
Struts 2整合Struts 1,允许开发者利用Struts 1已有的投资,同时享受Struts 2带来的优势,如增强的类型安全和更强大的拦截器机制。 在《Struts 2权威指南--基于WebWork核心的MVC开发》这本书中,作者李纲深入浅出地...
在这个"struts1实现图片上传"的实践中,我们将深入探讨如何使用Struts1来处理图片上传功能,包括图片预览。 首先,我们需要在Struts1的配置文件`struts-config.xml`中定义一个Action,这个Action将处理图片上传的...
Struts1和Struts2是两个非常著名的Java Web框架,它们都由Apache软件基金会开发,用于构建MVC(Model-View-Controller)架构的应用程序。虽然它们在目标上相似,但在设计模式、功能特性和使用体验上存在显著差异。...
**Struts上传** Struts是Apache软件基金会下的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。在Struts 1.x版本中,处理文件上传主要依赖于`org.apache.struts.upload.FormFile`...
在本文中,我们将深入探讨如何实现一个基于Java和Struts1框架的图片上传功能,结合SWFUpload这一前端上传插件。首先,我们要明白图片上传是Web应用中常见的一种功能,它涉及到前端交互、文件传输协议以及后端处理等...
在"Struts1上传二进制流"这个主题中,我们将深入探讨如何使用Struts1处理文件上传,特别是涉及到二进制数据的处理。在这个过程中,`UserAction.java`和`uimageShow.jsp`是两个关键文件,它们分别代表了业务逻辑层和...
在这个场景中,我们将讨论如何在Struts1框架中集成Uploadify实现多文件上传功能。 首先,我们需要在项目中引入Uploadify的相关资源。这包括JavaScript文件(如uploadify.js)和CSS文件,通常放在项目的公共资源目录...