• Struts文件上传


    /* 文件上传的先决条件
     * 1. 上传的表单必须以POST方式提交(method="post")
     * 2. 提交需要指定编码为: `multipart/form-data` (enctype="multipart/form-data`")
     * 3. 可以在xml配置文件中添加一个 name="input"的result, 便于错误信息回显
     * 4. 如果下载的文件太大, 需要在xml配置文件中修改默认的文件的最大字节数, 如最大允许上传5M:
     *         ```
     *         <constant name="struts.multipart.maxSize" value="5242880" />
     *         ```
     */

    1.上传的JSP页面中的代码:

      //引入S标签

       <!-- from表单 -->    <s:fielderror fieldName="file"></s:fielderror> 错误信息提示 <s:form action="/fileupload" method="post" theme="simple" enctype="multipart/form-data"> <!-- 选择文件标签 --> <s:file name="file" /> <!-- submit按钮 --> <s:submit value="上传" /> </s:form>

    2.具体Action类的操作:

    public class FileUpLoadAction extends ActionSupport {
    
        private static final long serialVersionUID = 1L;
        //传过来的文件,file和jsp页面的[<s:fielderror fieldName="file"></s:fielderror>]fieldName一样    
        private File file;
        //传过来的文件名:
        private String fileFileName;
        //传过来的文件类型:
        private String  fileContentType;
        
      生成三个字段的getter,setter方法
    //业务处理
        public String execute() throws Exception {
            //获取到"/123"文件夹的路径
            String path = ServletActionContext.getServletContext().getRealPath("/123");
            //将文件类型进行"/"截取,得到最后一个元素[1],进行字符串拼接
            //fileName=UUID.文件类型
            String fileName=UUID.randomUUID().toString()+"."+fileContentType.split("/")[1];
            //在"/123"中建一个名为fileName的文件
            File files=new File(path,fileName);
            //将传过来的文件file拷贝到"/123"中名为fileName的文件中
            FileUtils.copyFile(file, files);
            return NONE;
        }

    3.struts.xml中的代码:

    <struts>
        <!-- 服务器允许最大的上传字节大小 -->
        <constant name="struts.multipart.maxSize" value="5242880"></constant>
            <include file="struts-default.xml"></include>
        <package name="fileuploads" extends="struts-default">
            <action name="fileupload"  class="com.gxxy.filetransport.filedownload.FileUpLoadAction">
                    <interceptor-ref name="fileUpload">
                    <!-- 设置上传文件的字节大小,这个大小只能小于服务器允许的最大的上传字节大小 -->
                        <param name="maximumSize">1048576</param>
                        <!-- 设置允许上传的拓展名 -->
                        <param name="allowedExtensions">png,jpg,txt</param>
                    </interceptor-ref>
                    <interceptor-ref name="defaultStack"/>
                <result name="input">/JSP/filetransport/fileupload.jsp</result>
                <result name="none">/JSP/filetransport/fileupload.jsp</result>
            </action>
        </package>
    </struts>  
  • 相关阅读:
    NGUI本地化
    Unity中的特殊文件夹
    NGUI3.7.4实现循环拖动
    一年
    倒计时 功能
    PV inverter启动 ----系列二
    关于几个其他的命令使用 【实时更新】
    QT学习系列-----5 --Qt 4.8.5的移植
    QT学习系列-----4 --Qt 版本及qwt
    经典数字信号处理图书的个人评述【转】
  • 原文地址:https://www.cnblogs.com/zhang-bo/p/6536136.html
Copyright © 2020-2023  润新知