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

    运用SpringMVC的文件上传,我们只需要一些配置就可以了,很方便!

    只需要一下几步就行:

    1.新建xml文件,例如:a.xml 配置如下:

    <?xml version="1.0" encoding="UTF-8"?>  
    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"  
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"  
    default-lazy-init="true">  
    <!--Controller类的路径-->
        <bean id="pickMaintainController" class="com.ly.controller.PickMaintainController"></bean>
    </beans>
    

     2.在spring-application.xml中添加配置如下:

    <!-- 支持文件上传 -->
    	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
    在web.xml中添加配置如下:
    	<servlet>
    		<servlet-name>springmvc</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<init-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>classpath:resources/codeifAction.xml</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    </servlet>
    

     3.Controller类如下:红色标注为关键

    @Controller
    public class PickMaintainController {
    @RequestMapping("batchUpload")
      public String batchUpload(Model model, @RequestParam(value = "file", required = false) MultipartFile file,  HttpServletRequest request) {
        //上传文件操作
        
      }
    }
    

     4.jsp页面:注意name值file和 MultipartFile file一样的

    <form id="" method="post" action="" enctype="multipart/form-data">
      <input type="file" id="file" name="file" />
    </form>
    

    想了想还把上传文件操作贴出来吧:不然你会苦恼的。。。

    @RequestMapping("batchUpload")
      public String batchUpload(Model model, @RequestParam(value = "file", required = false) MultipartFile file,  HttpServletRequest request) {
        //上传文件操作
        String path = request.getSession().getServletContext().getRealPath("upload");
    		String fileName = file.getOriginalFilename();
    		System.out.println(path);
    		System.out.println(fileName);
    		File targetFile = new File(path, fileName);
    		if(!targetFile.exists()) {
    			targetFile.mkdirs();
    		}
    		//如果文件存在,就删除
    		deleteFiles(path+"\"+fileName, fileName);
    		//保存
    		try{
    			file.transferTo(targetFile);
    		}catch(Exception e) {
    			e.printStackTrace();
    			System.out.println("文件保存失败!");
    		}
    		String filePath = request.getSession().getServletContext().getRealPath("upload")+"/"+fileName;
    		
      }
        //删除指定路径下的文件
    	 public static void deleteFiles(String path, String fileName){
    	       File file = new File(path);
    	       //1級文件刪除
    	       if(!file.isDirectory() && file.getName().equals(fileName)){
    	           file.delete();
    	       }else if(file.isDirectory()){
    	           //2級文件列表
    	           String []filelist = file.list();
    	           //获取新的二級路徑
    	           for(int j=0;j<filelist.length;j++){
    	               File filessFile= new File(path+"\"+filelist[j]);
    	               if(!filessFile.isDirectory() && file.getName().equals(fileName)){
    	                   filessFile.delete();
    	               }else if(filessFile.isDirectory()){
    	                   //递归調用
    	                   deleteFiles(path+"\"+filelist[j], fileName);
    	               }
    	           }
    	           file.delete();
    	       }
    	    }
        
    }
    

     有问题请留言。。。。

  • 相关阅读:
    Caffe2——C++ 预测(predict)Demo
    Effective C++ 条款06:若不想使用编译器自动生成的函数,就该明确拒绝
    Effective C++ 条款05:了解C++编写并调用哪些函数
    Effective C++ 条款04:确定对象被使用前已经先被初始化
    Effective C++ 条款03:尽可能使用const
    Effective C++ 条款02:尽量以const,enum,inline替换 #define
    使用队列(Queue)解决简单的并发问题
    关于C#中Queue的线程安全问题
    C#多线程编程
    跨线程访问控件的问题和编程方法
  • 原文地址:https://www.cnblogs.com/julinhuitianxia/p/7230113.html
Copyright © 2011-2022 走看看