多文件上传与拦截器

@Controller
public class MostFileController {                      //多文件上传
@RequestMapping("/first")
    public String doFlrat(@RequestParam MultipartFile[] upload, HttpSession session) {
        System.out.println("*******************");
        for (MultipartFile item:upload) {
            if(item.getSize()>0){
                //用户是否选择了文件
                //获取到用户上传的文件名称
String chilPath=item.getOriginalFilename(); //文件段名称
if(chilPath.endsWith(".jpg")||chilPath.endsWith("gif")||chilPath.endsWith("png")){
                    //将行对路径转换成绝对路径
String paraPath=session.getServletContext().getRealPath("/uplode");
                    //将file写入指定的路径
File  filePath=new File(paraPath,chilPath);
                    try {
                        //将文件内存运输到指定的文件中
item.transferTo(filePath);

                    } catch (IOException e) {
                        e.printStackTrace();
                        return "/Fileuplode.jsp";
                    }
                }else {
                    return "/Fileuplode.jsp";
                }
            }else {
                return "/Fileuplode.jsp";
            }
        }
        return "/index.jsp";
    }
@RequestMapping("/first2")
public String doFirst2(MultipartFile upload,HttpSession session){
    System.out.println("****************************88");
    if(upload.getSize()>0){
        //用户是否选择了文件
        //获取到用户上传的文件名称
String chilPath=upload.getOriginalFilename();  //文件短名称
if(chilPath.endsWith(".jpg")||chilPath.endsWith("gif")||chilPath.endsWith("png")){
            //将相对路径转化成绝对路径
String paratPath=session.getServletContext().getRealPath("/uplode");

            //将file写入指定的路径
File filePath=new File(paratPath,chilPath);
            try {
                //将文件内存运输到指定的文件中
upload.transferTo(filePath);
            } catch (IOException e) {
                e.printStackTrace();
                return "/index.jsp";
            }
        }else {
            return "/Fileuplode.jsp";
        }
    }else {
        return "/Fileuplode.jsp";
    }
    return "/Fileuplode.jsp";
 }
}

MostFileupdlo.xml配置:
  <!--配置包扫描器-->
<context:component-scan base-package="cn.mostFileupload"></context:component-scan>
         <!--配置文件上传的专用类-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="utf-8"></property>
    <property name="maxUploadSize" value="5000000"></property>
</bean>
<mvc:annotation-driven/>
Fileuplode.jsp页面:   
</head>
<body>
<h1>文件上传</h1>
<form action="/first" method="post" enctype="multipart/form-data">
    文件1   <input type="file" name="upload"/>
    文件2   <input type="file" name="upload"/>
    文件3   <input type="file" name="upload"/>
    <input type="submit"/>
</form>
</body>

Struts2拦截器:  exception 异常拦截器     
                params 参数拦截器
                il8n 国际化拦截器
                fileupload 文件上传拦截器
                validation 校验拦截器
Struts2中处理的请求的组件是:Action
SpringMVC中处理请求的组件是:Controller
JSP中处理请求的组件是: servlet
拦截器HandlerInterceptor的三种方法:(1)perHandle() (2)postHandle() (3)afterCompletion()
注册拦截器:   **匹配0或者更多的目录
                *匹配0或者任意的字符串

  拦截器:
创建Myhanderinter类并集成HandlerInterceptor接口中的方法:
public class Myhanderinter implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        System.out.println("perHandle+=========================================");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
        System.out.println("posthandle-------------------------------------");
    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
        System.out.println("afterHandle====================================");
    }
}
//在创建一个intercfeption类
@Controller
public class intercfeption {
  @RequestMapping("/first")
    public String doInter(){
      System.out.println("Handle=====================================");
        return "index.jsp";
    }
}
  HandleInter.xml配置:
   <!--配置包扫描器-->
<context:component-scan base-package="cn.Handerinter"></context:component-scan>
         <!--注册拦截器-->
<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <bean class="cn.Handerinter.Myhanderinter"></bean>
    </mvc:interceptor>
</mvc:interceptors>
<mvc:annotation-driven/>
时间: 2024-10-12 04:04:16

多文件上传与拦截器的相关文章

学习笔记_springmvc文件上传和拦截器

文件上传 用到这两个包 配置视图解析器:springmvc配置文件配置 <!-- id必须要是"multipartResolver" --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- maxUploadSize文件上传的最大值,单位是byte

04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s

 1. Spring-mvc介绍 1.1市面上流行的框架 Struts2(比较多) Springmvc(比较多而且属于上升的趋势) Struts1(即将被淘汰) 其他 1.2  spring-mvc结构 DispatcherServlet:中央控制器,把请求给转发到具体的控制类 Controller:具体处理请求的控制器(配置文件方式需要配置,注解方式不用配置) handlerMapping:映射处理器,负责映射中央处理器转发给controller时的映射策略 ModelAndView:服务

SpringMVC-------3.文件上传,拦截器和数据校验(后台校验)

1.文件上传 1.1导入jar包 1.2设置表单提交属性 文件上传只允许表单为post提交,并且编码类型为multipart/form-data 1.3在springmvc中配置文件上传解析器. 其中的id名不能更改,否则报错 设置最大上传大小maxUploadSize 1.4 在控制层处理代码 @RequestMapping("upload") public String upload(MultipartFile myfile,HttpServletRequest request)

2017/2/12:springMVC的简单文件上传跟拦截器

1.写文件上传的界面jsp代码如下重点为文件上传标签的类型 2.写登录成功跟失败的界面:成功自己写 3.写springMVC的文件上传的controller的方法 4.最后一步配置spring-servlet.xml一般是开始就配置 5.贴出整个demo的模型 切记:在springMVC中文件上传必须要用CommonsMultipartFile类来解析文件

SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器

一.参数的传递 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Helvetica } 1.简单的参数传递 1 /* @RequestParam用法:入参名字与方法名参数名不一致时使用{ 2 * value:传入的参数名,required:是否必填,defaultValue:默认值 3 * } 4 */ 5 @RequestMapping("itemEdit") 6 public ModelAndView itemEdit(@R

struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题

<interceptor-ref name="fileUpload"> <param name="allowedTypes">image/bmp,image/png,image/gif,image/jpeg,image/pjpeg</param> <!-- 图片不能大于5M --> <param name="maximumSize">5242880</param> </

Struts2单文件上传原理及示例

一.文件上传的原理 表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值: 1.application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里的value属性值,采用这种编码方式的表单会将表单域的值处理成URL编码方式. 2.multipart/form-data:这种编码方式的表单会以二进制流的方式来处理表单数据,这种编码方式会把文件域指定文件的内容也封装到请求参数里. 3.text/plain:这种方式主要适用于直接通过表单发送邮件的

笔记02 文件上传、文件下载、类型转换器、国际化的支持

Struts2的上传 1. Struts2默认采用了apache commons-fileupload  2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload相关依赖包 * commons-io-1.3.2.jar * commons-fileupload-1.2.1.jar 4. 表单中需要采用POST提交方式,编码类型需要使用:multipart/form-data 5. Struts2的Action     取得文件名称->>规则:输入域的名称+

Java中实现文件上传下载的三种解决方案

第一点:Java代码实现文件上传 FormFile file=manform.getFile(); String newfileName = null; String newpathname=null; String fileAddre="/numUp"; try { InputStream stream = file.getInputStream();// 把文件读入 String filePath = request.getRealPath(fileAddre);//取系统当前路径