public class DownloadAction extends Action { //问题:下载文件时,后台老是抛出异常: //getOutputStream() has already been called for this response //不知这段代码哪里出了问题没有.谢谢大家的帮忙. @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String oldFileName=request.getParameter("oldFileName"); //弹出一个框框 response.setContentType("text/html;charset=utf-8"); //设置一个头,告诉浏览器有文件要下载 对中文要进行url编码 try { response.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(oldFileName,"utf-8")); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } String newFileName=request.getParameter("newFileName"); String fileAllPath=this.getServlet().getServletContext().getRealPath("/file")+"\\"+newFileName; InputStream is=null; OutputStream os=null; try { is=new FileInputStream(fileAllPath); os=response.getOutputStream(); int len; byte[] buf=new byte[1024]; while((len=is.read(buf))>0){ os.write(buf,0,len); } } catch (Exception e) { e.printStackTrace(); }finally{ try { if(null!=is){ is.close(); } if(null!=os){ os.close(); } } catch (IOException e) { e.printStackTrace(); } } return mapping.findForward("back"); } }
相关推荐
在Struts中,我们通常会创建一个Action类来处理文件下载的逻辑。这个Action类需要获取到待下载文件的路径或流,并设置适当的HTTP响应头,包括Content-Disposition(用于指定文件名)和Content-Type(用于标识文件...
通过以上步骤,我们可以使用Struts2框架实现一个完整的文件下载功能。在`FileDownloadDemo`项目中,你应该能看到这些组件的实现。这个示例项目可以帮助你更好地理解和实践Struts2的文件下载功能,进一步提升你在Web...
1. **配置Struts2 Action**:在`struts.xml`配置文件中,你需要定义一个Action,该Action负责处理文件上传请求。Action的类需要继承自`ActionSupport`,并覆盖`execute()`方法,以便处理上传的文件。 2. **设置...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java Web开发中。文件上传和下载是Web应用程序中的常见功能,对于用户交互和数据交换至关重要。本篇文章将详细探讨如何在Struts2框架下实现文件的上传与...
1. **Action**:创建一个处理文件下载的Action,需要获取要下载文件的服务器路径或流。 2. **设置响应头**:在Action中,通过Servlet的`response`对象设置响应头,包括`Content-Type`(文件类型)、`Content-...
在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...
总之,这个项目实例为使用Struts2和Uploadify实现带进度条的多文件上传及下载功能提供了一个基础模板,对于学习和实践此类功能的开发者来说是一个有价值的参考。通过深入研究和理解这个项目的代码,可以提升对Struts...
在这个"struts实现文件上传和下载源代码"项目中,我们将会探讨如何使用Struts框架来实现在Web应用中进行文件的上传和下载功能,同时还会关注对于大文件(超过3MB)的处理策略。 1. **文件上传** 文件上传是Web应用...
通过定义一个Action类处理下载请求,配置Struts2的Action映射,以及在JSP页面上创建触发下载的链接,我们可以为用户提供安全、便捷的文件下载体验。这个案例对于理解和实现在Java web应用中处理文件下载的流程非常有...
本篇文章将详细探讨Struts文件上传大小限制的问题。 首先,我们需要理解文件上传的基本流程。在Struts中,当用户通过表单提交文件时,数据会被封装到`ActionForm`对象中,然后由Struts的控制器组件处理。默认情况下...
1. **配置Action类**:创建一个处理文件下载请求的Action类,该类通常会包含一个返回值表示下载操作的执行结果。在Action中,我们需要获取待下载文件的路径,并将其转换为InputStream。 ```java public class ...
JavaEE Struts 文件上传是Web开发中的一个常见需求,它允许用户从客户端向服务器传输文件。Struts作为JavaEE框架的一部分,提供了强大的功能来处理这种交互。以下是对这个主题的详细解析。 首先,理解文件上传的...
1. 创建下载服务:在Struts框架中,通常通过一个Action来提供文件下载服务。Action需要根据请求参数找到待下载文件的路径,然后设置响应头,包括Content-Type(表示文件类型)和Content-Disposition(告诉浏览器以...
通过以上步骤,你可以实现一个基于Struts2和Hibernate的文件上传与动态下载系统。这个系统能够处理用户上传的文件,将其保存到服务器,同时提供动态下载功能,允许用户根据需要下载文件。在实际开发中,还需要考虑...
在Struts2中,你可以在Action类中定义一个方法,该方法读取服务器上的文件内容并设置响应头,以便浏览器能够正确地处理下载。例如,你可以设置`Content-Disposition`头来指定文件名,以及`Content-Type`头来指定文件...
2. **Struts2 Action类中的文件处理**: 文件上传后,Struts2会将文件内容存储在一个临时位置。通常,你需要在Action类中创建一个`File`对象和一个`String`类型的属性,如`private File file; private String ...
对于文件下载,Struts1通常通过Action创建一个Servlet,该Servlet负责读取服务器上的文件并将其流化到响应中。用户发起下载请求时,Action会重定向到这个Servlet,Servlet读取文件并设置响应头,包括Content-...
3. **Struts2拦截器**:Struts2提供了一个名为`FileUploadInterceptor`的拦截器,用于处理文件上传请求。在配置文件中,需要将这个拦截器加入到Action的执行链中。 4. **文件存储**:上传的文件需要被存储在服务器...
1. **创建下载Action**:创建一个新的Action类,定义一个方法来处理文件下载请求。 2. **读取文件**:在该方法中,通过文件路径读取要下载的文件内容。可以使用`java.io.File`和`java.io.FileInputStream`等类。 3...
在本程序中,我们关注的是如何使用Struts2.1.3实现一个简单的文件下载功能。 首先,我们需要在项目中配置Struts2的核心库。这通常包括添加struts2-core.jar、struts2-convention-plugin.jar等依赖到项目的类路径中...