Struts文件上传下载

Posted 伊小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

 

以上是关于Struts文件上传下载的主要内容,如果未能解决你的问题,请参考以下文章

Struts的文件下载功能实现代码

struts2实现文件上传下载

Struts2学习—文件上传和下载

Struts2文件上传(基于表单的文件上传)

有关Struts下载文件时报错问题

Struts文件下载具体解释