• 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>  
  • 相关阅读:
    Pytorch-情感分类实战(基于LSTM,调用torchtext)
    Pytorch-LSTM
    Pytorch-时间序列预测
    Pytorch-RNN
    SQLServer -------- 包含(charindex)
    .NET ------ 树形菜单,点击单选按钮触发相应事件
    电子秤Xk3190-A12+E 称重方式的设置方法
    串口调试工具与com口编程
    .NET ------ Repeater 遍历数据显示在页面上
    .NET ------ 将弹窗内增加选项卡
  • 原文地址:https://www.cnblogs.com/zhang-bo/p/6536136.html
Copyright © 2020-2023  润新知