struts2实现文件上传下载

代码比较粗糙,这里只做个记录,方便日后查询

/**
 * 上传文件代码
 */

public class UploadAndDownloadAction extends ActionSupport{ 

    // 获取文件
    private File myFile;
    // 获取文件的名称
    private String myFileFileName;
    // 获取文件的类型
    private String myFileContentType;
    public File getMyFile() {
        return myFile;
    }
    public void setMyFile(File myFile) {
        this.myFile = myFile;
    }
    public String getMyFileFileName() {
        return myFileFileName;
    }
    public void setMyFileFileName(String myFileFileName) {
        this.myFileFileName = myFileFileName;
    }
    public String getMyFileContentType() {
        return myFileContentType;
    }
    public void setMyFileContentType(String myFileContentType) {
        this.myFileContentType = myFileContentType;
    }

    public boolean upload() {

            // 1.确定上传的文件保存的位置
             String uploadRootPath = "/common/download/template";
             String dir = Struts2Util.getRequest().getRealPath(uploadRootPath);
            // 2.判断这个文件夹是否存在,不存在创建
            File file = new File(dir);
            if (!file.exists()) {
                file.mkdir();
            }
            // 3.将文件放到InputStream里面,然后outputstream写入文件
            InputStream is = null;
            OutputStream os = null;
            try {
                is = new BufferedInputStream(new FileInputStream(myFile));
                os = new BufferedOutputStream(new FileOutputStream(dir + "\\" + myFileFileName));
                byte[] buffer = new byte[1024];
                int byteLen = 0;
                while ((byteLen = is.read(buffer)) > 0) {
                    os.write(buffer, 0, byteLen);
                }
                domain.setTemplateName(myFileFileName);
                domain.setTemplateUrl(uploadRootPath+ "\\" + myFileFileName);
                domain.setTemplateFullPath(dir+ "\\" + myFileFileName);

            } catch (Exception e) {

            } finally {
                if (is != null) {
                    try {
                        is.close();
                    } catch (IOException e) {
                    }
                }
                if (os != null) {
                    try {
                        os.close();
                    } catch (IOException e) {
                    }
                }
            }
            return true;
        }
}
/**
 *  文件下载
 */

public class UploadAndDownloadAction extends ActionSupport  { 

    private String fileName;

    public String getFileName() {
         try{
             fileName = URLEncoder.encode(fileName,"UTF-8");
         }catch(Exception e){
             throw new RuntimeException();
         }

         return fileName;
    }
    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    //2.3:返回流的方法 下载
     public InputStream getAttrInputStream() throws ItsException, UnsupportedEncodingException{
         String fileName=Struts2Util.getRequest().getParameter("fileName");
             this.setFileName(fileName);
             InputStream is=ServletActionContext.getServletContext().getResourceAsStream("路径");
             return is;
         }else{
             return null;
         }
     }

     public String getDownloadFile() throws ItsException {
         return "success";
     }

     /**
      *  struts2 配置
      */
     <action name="uploadAndDownload*" class="uploadAndDownloadAction" method="{1}">
            <result name="uploadTemplate">/common/download/jsp/uploadTemplate.jsp</result>
            <!-- 下载操作 -->
              <result name="success" type="stream">
                 <param name="contentType">application/octet-stream</param>
                 <param name="inputName">attrInputStream</param>
                 <param name="contentDisposition">attachment;filename="${fileName}"</param>
                 <param name="bufferSize">1024</param>
              </result>
    </action>

}
/**
 * 删除文件
 */

public static boolean delete(String path) {
    File file = new File(path);
    if (!file.exists()) {
        return false;
    }else{
        return deleteFile(path);
    }
}
/**
 * 删除文件
 */
public static boolean deleteFile(String path) {
    File file = new File(path);
    // 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
    if (file.delete()) {
        return true;
    }else {
        return false;
    }
}

原文地址:https://www.cnblogs.com/jiaobaobao/p/9565195.html

时间: 2024-10-13 08:10:19

struts2实现文件上传下载的相关文章

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

Struts2 文件上传,下载,删除

本文介绍了: 1.基于表单的文件上传 2.Struts 2 的文件下载 3.Struts2.文件上传 4.使用FileInputStream FileOutputStream文件流来上传 5.使用FileUtil上传 6.使用IOUtil上传 7.使用IOUtil上传 8.使用数组上传多个文件 9.使用List上传多个文件 ----1.基于表单的文件上传----- fileupload.jsp <body> <form action="showFile.jsp" na

Struts2之文件上传下载

本篇文章主要介绍如何利用struts2进行文件的上传及下载,同时给出我在编写同时所遇到的一些问题的解决方案. 文件上传 前端页面 1 <!-- 引入struts标签 --> 2 <%@taglib prefix="s" uri="/struts-tags"%> 3 4 <!-- 5 使用struts中的<s:file></s:file>标签来选择文件. 6 设置name属性,则提交后将传递后给后台一个name属性

plupload+struts2实现文件上传下载

plupload是一款优秀的web前端上传框架.使用简单.功能强大.不仅支持文件多上传,进度条.拖拽方式选择文件更重要的是他会自己主动的识别浏览器来选择最合适的上传方式.废话少说先上图: 代码都是測试过的非常好用,仅仅要把jquery路径和版本号改动下面,去plupload官网把jar把下载下来就能够用了. 先看一下uploadUI.jsp源码.uploadUI.jsp就是上图显示的页面: <%@ page language="java" import="java.ut

基于struts2的文件上传下载

1.struts.xml 1 <struts> 2 <constant name="struts.multipart.maxSize" value="209715200" /><!-- 设置文件上传大小,2097152=2M --> 3 <package name="action" extends="struts-default" namespace="/">

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

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

struts2实现文件上传和下载

在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来比较繁琐,而且不灵活,在学习了struts2后,struts2为文件上传下载提供了更好的实现机制,在这里我分别就单文件上传和多文件上传的源代码进行一下讲解,这里需要导入文件下载上传的两个jar文件,一个是commons-fileupload-1.2.2.jar,另一个是commons-io-2.0.

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

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

struts2 文件上传下载

四.文件的上传(拦截器)和下载(stream结果类型)(需要练一遍) 1.文件上传 必要前提: a.表单method必须是post: b.enctype取值必须是multipart/form-data: c.提供文件选择域. 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 <%@ taglib uri="/struts-t