struts2——文件上传

struts2——文件上传_第1张图片

/*
文件上传
1.导入jar
2.设置表单的enctype
3.在Action中定义File
4.将File文件保存到指定的目录中:此时要用到FileUtils这个工具类是commons-io.jar下的类,所以要导入jar
    public class HelloAction {
     
         private File image;
         private String imageFileName;//上传文件的名称的接受名称是固定的写法:字段名+FileName
         
        public String execute() throws Exception{
            String realpath = ServletActionContext.getServletContext().getRealPath("/image");//得到保存文件的路径
            if(image!=null){
                File savefile = new File(realpath,imageFileName);    //这里连同路径和文件一起new了一个File
                if(!savefile.getParentFile().exists()){//如果文件的路径不存在,那么就创建出路径
                    savefile.getParentFile().mkdirs();
                }
                FileUtils.copyFile(image, savefile);        //通过工具类将文件复制到指定的路径下
                ActionContext.getContext().put("message", "上传成功");
            }
            return "success";
        }
    }

    存在的问题:
        1.这种上传对于同名文件,会产生覆盖的问题?????????
        2.文件的大小的限制:FileUploadBase$SizeLimitExceededException:
            这里可以通过:<constant name="struts.multipart.maxSize" value="12024000"></constant>

        3.对于大数据的文件,通过web上传文件一般不行,一般安装一个插件,然后上传;
                就是通过Socket,向服务器发送二进制文件


你可能感兴趣的:(struts2——文件上传)