Struts文件上传下载

Struts配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.devMode" value="true" />
    <constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
    <package name="default" extends="struts-default">
        <action name="upload" class="com.itheima.action.UploadAction" method="upload">
            <result>/1.jsp</result>
            <result name="input">/upload.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
        <action name="download" class="com.itheima.action.UploadAction" method="download">
            <result type="stream">
                <param name="contentType">application/octet-stream</param>
                <!-- 在配置文件中使用OGNL表达式 -->
                <param name="contentDisposition">attachment;filename=${@[email protected](photoFileName,‘UTF-8‘)}</param>
                <param name="inputName">myInputStream</param>
            </result>
        </action>
    </package>

</struts>

action方法:

 1 package com.itheima.action;
 2
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7 import java.io.InputStream;
 8 import java.io.OutputStream;
 9
10 import org.apache.struts2.ServletActionContext;
11
12 import com.opensymphony.xwork2.ActionSupport;
13
14 public class UploadAction extends ActionSupport {
15     private File photo;
16     private String photoFileName;
17     private String photoContentType;
18     private InputStream myInputStream;
19
20
21     public InputStream getMyInputStream() {
22         return myInputStream;
23     }
24
25     public void setMyInputStream(InputStream myInputStream) {
26         this.myInputStream = myInputStream;
27     }
28
29     public File getPhoto() {
30         return photo;
31     }
32
33     public void setPhoto(File photo) {
34         this.photo = photo;
35     }
36
37     public String getPhotoFileName() {
38         return photoFileName;
39     }
40
41     public void setPhotoFileName(String photoFileName) {
42         this.photoFileName = photoFileName;
43     }
44
45     public String getPhotoContentType() {
46         return photoContentType;
47     }
48
49     public void setPhotoContentType(String photoContentType) {
50         this.photoContentType = photoContentType;
51     }
52
53     public String download() throws FileNotFoundException{
54         photoFileName = "整容广告.jpg";
55         //就是myInputStream赋值
56         String storeDirectory = ServletActionContext.getServletContext().getRealPath("/files/整容广告.jpg");
57         myInputStream = new FileInputStream(storeDirectory);
58
59         return SUCCESS;
60     }
61     public String upload(){
62         try {
63             InputStream in = new FileInputStream(photo);
64             String storeDirectory = ServletActionContext.getServletContext().getRealPath("/files");
65             OutputStream out = new FileOutputStream(storeDirectory+"/"+photoFileName);
66             int len = -1;
67             byte b[] = new byte[1024];
68             while((len=in.read(b))!=-1){
69                 out.write(b, 0, len);
70             }
71             in.close();
72             out.close();
73             return SUCCESS;
74         }  catch (Exception e) {
75             e.printStackTrace();
76             return ERROR;
77         }
78     }
79 }

jsp页面:

    <s:form action="upload" enctype="multipart/form-data">
        <s:file label="靓照" name="photo"></s:file>
        <s:submit value="上传"></s:submit>
    </s:form>
时间: 2024-10-17 08:16:13

Struts文件上传下载的相关文章

struts 文件上传下载

上传 1.编写上传action类 UploadAction.java 1 package jxf.b_upload; 2 3 import java.io.File; 4 import java.io.IOException; 5 6 import javax.servlet.http.HttpServletRequest; 7 8 import org.apache.commons.io.FileUtils; 9 import org.apache.struts2.ServletActionC

ssh框架文件上传下载

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Author" content="BuNuo"> <meta name="Keywords" content="文件上传下载"> <meta name="

Struts2学习之文件上传/下载&amp;ValueStack(三)

简介 今天是学习Struts2第三天,也算struts2准备前奏告一段落,提升部分只能在后期深入了解,多看源码,多参阅资料.今天所学的知识点文件上传.下载/ValueStack&OGNL/Struts2标签 文件上传/下载 文件上传简介 a). 企业常用文件上传技术 : jspSmartUpload(主要应用 JSP model1 时代) . fileupload (Apache commons项目中一个组件). Servlet3.0 集成文件上传 Part类 b). Struts2 对文件上传

基于Java的一个简单的文件上传下载功能

最近在公司给客户端做接口,有一个图片上传和文件下载的功能,本来想用Struts来做文件上传下载,但是看了下公司好像没有这个配置,然后看了下同事的代码,才发现原来Apache也可以简单的实现文件上传下载. 首先引入commons-io-2.2.jar FileUtils为我们提供了很多对文件的操作的方法,比如上传整个文件夹的文件.上传单个文件等 然后请看代码下载: public static void uploadFile(String targetDirectory,String targetF

【SSH2(实践篇)】--Struts2文件上传下载实例

上篇文章又一次回顾了Struts2的运行机制,对它的运行步骤做了一步步的解析,这个解析不但再一次理清了Struts2的使用方法,而且对它的映射机制进行了深入的解析,并在最后通过一个实例来介绍了Struts2的一种使用方法,这里将做一个有关文件上传下载的实例. 一.文件上传 Struts2并没有提供文件上传的组件,所以想要实现上传的功能就必须通过第三方组件来实现,在Struts2引用的jar中包含了文件上传的组件,它是通过commons-fileupload.jar和commons-io.jar来

文件上传(多文件上传)/下载

通常我们会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来比较繁琐,而且不灵活,在学习了struts2后,struts2为文件上传下载提供了更好的实现机制,在这里我分别就文件下载和多文件上传的源代码进行一下讲 文件上传 首先先创建jsp页面(用于多文件上传) <%@ page language="java" import="java.util.

JavaWeb实现文件上传下载功能实例解析

转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件

struts2 实现文件上传下载 (下载支持中文文件名)代码

struts2 实现文件上传: Action 代码: package com.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import org.apache.struts2.ServletActionContext; import com.o

JavaWeb实现文件上传下载功能实例解析 (好用)

转: 转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上