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

    package com.zhao.action;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    /**
     * 
     * @author: zhao
     * @time: 2016年5月14日
     * 
     * @description:strut2文件上传
     */
    public class FileUpAction extends ActionSupport {
        private static final long serialVersionUID = 1L;
        private File upload;// 上传文件
        private String uploadFileName;// 文件名称
        private String uploadContentType;// 文件类型
        static final String Path = "E://OA/";
    
        @Override
        public String execute() throws Exception {
            InputStream inputStream = new FileInputStream(upload);
            File target = new File(Path + uploadFileName);
            OutputStream outputStream = new FileOutputStream(target);
            System.out.println(upload.getName() + ":" + upload.getPath());
            BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);
            int c;
            while ((c = bufferedInputStream.read()) != -1) {
                bufferedOutputStream.write(c);
                bufferedOutputStream.flush();// 清空缓存
            }
    
            bufferedInputStream.close();
            bufferedOutputStream.close();
            return SUCCESS;
        }
    
        public File getUpload() {
            return upload;
        }
    
        public void setUpload(File upload) {
            this.upload = upload;
        }
    
        
        public String getUploadFileName() {
            return uploadFileName;
        }
    
        public void setUploadFileName(String uploadFileName) {
            this.uploadFileName = uploadFileName;
        }
    
        public String getUploadContentType() {
            return uploadContentType;
        }
    
        public void setUploadContentType(String uploadContentType) {
            this.uploadContentType = uploadContentType;
        }
    
    }
    <?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" />
        
        <package name="file" namespace="/" extends="struts-default">
            <action name="up" class="com.zhao.action.FileUpAction">
                <result>down.jsp</result>
            </action>
        </package>
    
    </struts>
    <%@ 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>Insert title here</title>
    </head>
    <body>
        <form action="up.action" method="post" enctype="multipart/form-data">
            <input type="file" name="upload"/>
            <input type="submit" value="Submit"/>
        </form>
    </body>
    </html>

    Action struts.xml 以及前段jsp都有了,功能也实现了。但是有几个需要注意的点:

    1:

    private File XXX;// 上传文件
    private String XXXFileName;// 文件名称
    private String XXXContentType;// 文件类型

    这三个内容要一致,至于XXX是什么值,是前端jsp中type 为file的那个组件的name

    <input type="file" name="upload"/>

    如果不一致,必然出错。

    我做测试的时候把XXXFileName写成了XXXFilename,然后就无法获取正确的文件名。上传后的文件名就是null。

    2:

    这个报错信息是说没有找到临时路径,按道理来说是不应该出这个错误的,因为我们有默认的临时路径,既然出错了,那就解决一下:

    在strtus.xml或者是struts.properties中配置struts.multipart.saveDir的值,比如说改成/tmp/。就可以了。

  • 相关阅读:
    动手动脑及作业
    技能——沟通
    大道至简第三章读后感
    编写一个程序,用户输入两个数,求其加减乘除,并用消息框显示计算结果。
    动手动脑及课后实验
    大道至简第六章
    继承与接口
    产生随机数并窗口显示他们的和
    大道至简——失败也是积累
    动手动脑
  • 原文地址:https://www.cnblogs.com/zhao307/p/5492759.html
Copyright © 2011-2022 走看看