zoukankan      html  css  js  c++  java
  • Struts2文件的上传

    前端jsp页面:

      需要注意form标签需要引入这句:enctype="multipart/form-data"

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>上传文件的页面</title>
    </head>
    <body>
    
    <form action="${pageContext.request.contextPath }/fileUploadAction" method="post" enctype="multipart/form-data">
        文件名:<input type="text" name="filename"/><br/>
        文件:<input type="file" name="file1"/><br/>
             <input type="submit" value="上传文件">
    </form>
    </body>
    </html>

    action中的页面

    package com.bie.upload;
    
    import java.io.File;
    
    import org.apache.commons.io.FileUtils;
    import org.apache.struts2.ServletActionContext;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    /**
    * @author BieHongLi
    * @version 创建时间:2017年3月6日 上午10:43:52
    * 上传文件的Action处理
    *
    * struts2文件上传
    *      1:struts2中文件上传拦截器帮助我们完成上传文件的功能;
    *
    *
    */
    public class UploadAction extends ActionSupport{
    //对应表单的file1  <input type="file" name="file1"/>
        private File file1;
        //当前上传的文件名
        private String file1FileName;
        //文件类型(MIME)
        private String file1ContentType;
    public void setFile1(File file1) { this.file1 = file1; } public void setFile1FileName(String file1FileName) { this.file1FileName = file1FileName; } public void setFile1ContentType(String file1ContentType) { this.file1ContentType = file1ContentType; } @Override public String execute() throws Exception { //开始拿到上传的文件,进行处理,上传之前,要创建一个upload目录//把文件上传到upload目录,获取上传的目录路径 String path=ServletActionContext.getServletContext().getRealPath("/upload");
    //创建目标文件对象,文件名file1FileName,格式_FileName File targetFile=new File(path,file1FileName);
    //把上传的文件,拷贝到目标文件中 把file1的文件拷贝到 targetFile目录中 FileUtils.copyFile(file1, targetFile); return SUCCESS; } }

    可以设置上传 文件的大小、和类型

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
        <!-- 声明包 -->
        <package name="fileuploadpackage" extends="struts-default">
            <!-- 定义action -->
            <action name="fileUploadAction" class="com.bie.upload.UploadAction">
                <!-- 显示成功的jsp页面 -->
                <result name="success">/uploadfile/success.jsp</result>
    
                <!-- 文件上传拦截器,限制运行上传的文件的类型,还有其他一个方法,这是其中一个 -->
                   <interceptor-ref name="defaultStack">
                       <!-- 限制运行的文件的扩展名 fileUpload.allowedExtensions固定写法-->
                       <param name="fileUpload.allowedExtensions">txt,jpg,gif,png</param>
                   </interceptor-ref>
    
    
                <!-- 错误提示,档文件上传出现错误的时候,struts内部会返回input视图,
                    错误视图,所以就需要我们在struts.xml中配置Input视图对应的错误页面 -->
                <result name="input">/uploadfile/error.jsp</result>
    
            </action>
        </package>
    </struts>




    参考代码
            <!-- 限制文件的扩展名,如果有多个限制条件用逗号隔开
                <interceptor-ref name="defaultStack">
                    <param name="fileUpload.allowedExtensions">jpg</param>
                </interceptor-ref>
                 -->
                 <!-- 限制文件的MIME,如果有多个文件时使用逗号隔开 -->
                 <interceptor-ref name="defaultStack">
                    <param name="fileUpload.allowedTypes">image/jpeg</param>
                 </interceptor-ref>
                <result name="input">upload.jsp</result>
    
    
    
     
    坚持
  • 相关阅读:
    C++卷积神经网络实例:tiny_cnn代码具体解释(7)——fully_connected_layer层结构类分析
    不使用while,for,if等实现加法
    JavaScript包管理器综述
    hdu4455 dp
    Leetcode_num2_Maximum Depth of Binary Tree
    拉开大变革序幕(下):分布式计算框架与大数据
    TCP/IP协议组学习笔记
    Linux(centos 6.5) 调用java脚本以及定时运行的脚本实例及配置文件具体解释
    UVA11770
    C++再次理解虚表
  • 原文地址:https://www.cnblogs.com/gaoSJ/p/12987043.html
Copyright © 2011-2022 走看看