springboot-图片上传

controller:

@Controller
public class FileController {

    
    
    @RequestMapping(value = "/api/v1/gopage")  
    public Object index() {
        
        return "index";
    }

    
    
    
        private static final String filePath = "/Users/jack/Desktop/person/springboot/myspringboot/src/main/resources/static/images/";
   
    
         @RequestMapping(value = "upload")
        @ResponseBody
        public JsonData upload(@RequestParam("head_img") MultipartFile file,HttpServletRequest request) {
          
             //file.isEmpty(); 判断图片是否为空
             //file.getSize(); 图片大小进行判断
             
             String name = request.getParameter("name");
             System.out.println("用户名:"+name);
            
             // 获取文件名
            String fileName = file.getOriginalFilename();            
            System.out.println("上传的文件名为:" + fileName);
            
            // 获取文件的后缀名,比如图片的jpeg,png
            String suffixName = fileName.substring(fileName.lastIndexOf("."));
            System.out.println("上传的后缀名为:" + suffixName);
            
            // 文件上传后的路径
            fileName = UUID.randomUUID() + suffixName;
            System.out.println("转换后的名称:"+fileName);
            
            File dest = new File(filePath + fileName);
           
            try {
                file.transferTo(dest);
                
                return new JsonData(0, fileName);
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return  new JsonData(-1, "fail to save ", null);
        }

    
    
    
}


================================================================================================

html:

 


        文件:
        姓名:
       
      

================================================================================================

注意:

1.MultipartFile 对象的transferTo方法,用于文件保存(效率和操作比原先用FileOutStream方便和高效)

2.在启动类中加入一下配置,可设置上传文件的大小

    @Bean  
    public MultipartConfigElement multipartConfigElement() {  
        MultipartConfigFactory factory = new MultipartConfigFactory();  
        //单个文件最大  
        factory.setMaxFileSize("10240KB"); //KB,MB  
        /// 设置总上传数据总大小  
        factory.setMaxRequestSize("1024000KB");  
        return factory.createMultipartConfig();  
    } 

3.打包成jar包,需要增加maven依赖
        
            
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                

            

        

同时在配置文件中加入:

配置文件上传和访问需要指定磁盘路径
        application.properties中增加下面配置
            1) web.images-path=/Users/jack/Desktop
            2) spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path}

你可能感兴趣的:(springboot-图片上传)