文件上传

    1.1 实现步骤:
         1)在表单<form>中增加属性:
                method="post"
                enctype="multipart/form-data"
                enctype用于指定表单元素
                   的编码方式。
                 multipart/form-data用于指定以
                 二进制的方式传递表单元素,
                 同时将文件域通过请求参数进行传递。
                 ----------------------------------
                 <form>
                    <input name="un" value="abc"/>
                    <input name="age" value="20"/>
                    <input type="submit/>
                  </form>
                  默认情况下,请求数据包:
                    post /url HTTP/1.1
                    ...
                    (正文)
                    un=abc&age=20
                    ----------------------------
                    <form enctype="multipart/form-data">
                        <input type="file"/>
                      </form>
                      此时请求数据包的正文包含上传文件
                      的二进制内容。
            2)在JSP页面包含一个文件域:
                    <input type="file" name="xxx"/>
             3)在Action类增加与文件与对应的三个属性:
                         File xxx;     //上传文件对应的File对象
                         String xxxFileName;//上传文件的文件名
                         String xxxConentType;//上传文件的内容类型,如image/jpeg       
              4)在Action类的业务方法中将File对象
                拷贝到服务器端的目录下。
                -----------------------------------------
                Action类中的属性 ---请求转发--->目标页面 
                  User user;                                           ${user.userName}
      ---------------------------------------------
      1.2 文件上传的运行过程:
        1)params拦截器将浏览器端选择的文件
        拷贝到服务端的临时目录下
        (由struts.multipart.saveDir指定)
             浏览器端文件--params拦截器
                                     -->saveDir/临时文件
       2)params拦截器设置Action类中与
       文件域对应的3个属性:
            File xxx;//实际上与服务端的临时文件对应的File对象
            String xxxFileName;
            String xxxContentType;
           
            saveDir/临时文件 --params拦截器
                                            --> File xxx;
       3)在Action类将File xxx对象拷贝到
        服务器端的目录下:
        ---->/images/user/userName.jpg

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