• 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=${@java.net.URLEncoder@encode(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>
  • 相关阅读:
    vscode配置备份
    正则替换html代码中img标签的src值
    使用css3原生变量实现主题换肤
    vue3基础知识学习系列(二)响应式原理实现
    vue3基础知识学习系列(一)api使用
    eslint规则中文解释
    开发笔记:使用canvas实现3D金字塔比例图表&#128200;
    实用网页UI调试技巧
    2020年特殊的一年,成就特殊的我们
    java设计模式之责任链模式
  • 原文地址:https://www.cnblogs.com/lzy1991/p/5351174.html
Copyright © 2020-2023  润新知