Struts2之文件上传以及转换器

一:文件上传

         文件上传我们一般都是在表单里面引用file就可以了,但是在struts2中文件的上传比我们以前写的简单很多也不需要在写输入输出流了,不过在struts2中想要实现文件上传第一步我们就需要在表单中加入enctype="multipart/form-data"这一属性,因为如果你不写它的话是运行不了的。

          实现步骤:

                 1:如上所说要先在表单里面写入enctype="multipart/form-data"属性

                 2:在 action类里面私有化你表单里input里面的name值,然后在私有化name值加上ContentType和name值加上FileName,    

                    如://得到文件属性
                      private File image;(这里的名字是你表单里面定义的name值)
                   //得到文件类型
                      private String imageContentType;
                   //得到文件名字
                     private String imageFileName;

                3:封装属性(只要你封装了就可以得到值了)

                4:存入服务器:

                        //获取服务器路径
    String path=ServletActionContext.getServletContext().getRealPath("/images");  --这里是传入到你服务器的地址里
    File uploadpath=new File(path+"/"+imageFileName);
    //文件上传

    FileUtils.copyFile(image, uploadpath);--这里就不需要在写输入输出流了,只要调用copy的方法它就会给你保存到你的路径里面去了

                5:配置:

               <!-- 文件上传最大值 -->
                 <constant name="struts.multipart.maxSize" value="104857600" />
               <!-- 文件上传拦截器 --> 
                <interceptor-ref name="fileUpload"> <!-- 拦截类型 -->
                    <param name="allowedTypes">image/bmp,image/png,image/gif,
                 image/jpeg,image/pjpeg,image/x-png,application/msword,application/pdf,application/zip,application/x-zip- compressed</param>
                  <!--  配置允许上传文件的大小(单位字节) -->
                  <!--  <param name="maximumSize">80000</param> -->
               </interceptor-ref>
               <interceptor-ref name="defaultStack"></interceptor-ref>

如果你想实现多文件上传的话只要在表单里面多谢几个input就可以啦,然后在action里面用数组接收后再遍历就行了



二:转换器Convert

          转换器的话其实和我们以前用到的强转相似,它就是可以字符串和日期互转,字符串转成整行如22,33它会转成坐标行x=22,y=33

           如何实现:

                    1:写一个类继承StrutsTypeConverter,重写两个方法(重写一个包)       

                    2:配置-- 在action类里面新建一个文件,文件名为action类名+conversion.properties  

                  3:在配置里面需要写你的action里面定义的属性名=你写的转换器类名







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值