layui 和springMvc文件图片上传

1.准备工作

       --:导入整合ssm的jar包      

       --:导入layui样式文件和js 文件等

           (layui文件上传可以参考:http://www.layui.com/doc/modules/upload.html)

     --:在mysql 中创建一个表 Picture,用于存储图片路径,名称等数据

       --:新建一个上传图片的页面layuiUpload.jsp

     --:新建一个控制器LayUploadController.class

2. spring配置文件,mybatis 代码

      --:在spring容器中添加文件上传的bean,和其他相关配置

     -- :添加sql 用于将图片信息存储到数据库

3.说明:

文件上传到Tomcat服务器中,路径为:

基本路径\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\项目名称\imag,

我们可以通过在浏览器输入:http://localhost:8080/项目名称/imag/文件名,访问到文件。



1.1工程导入ssm整合jar包(可能有些是不必要的),和ssm整合(略)

layui 和springMvc文件图片上传_第1张图片layui 和springMvc文件图片上传_第2张图片


1.2 下载layui 相关js ,css 等(eclipse自检问题,会有一个红叉,但是不影响工程的运行)

     layui 和springMvc文件图片上传_第3张图片

1.3在mysql中创建表picture用来存储图片的基本数据

     

1.4在WEN-INF 目录下创建一个图片上传的页面layuiUpload.jsp

           

layuiUpload.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>





 
 
 
upload


 

 
<%-- 查看已经上传的图片 --%>     

1.5新建一个控制器LayUploadController.class 用来后台接收文件并处理

package cn.upload.controller;

import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.UUID;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import cn.upload.dao.PictureDao;

@Controller
@RequestMapping("/layuis")
public class LayUploadController {
	@Resource
	private PictureDao pictureDao;
//	@Resource
	
	
	//由于页面放在WEB-INF 下不能直接访问
	@RequestMapping("/f")
	public String s(HttpServletRequest request){
//		从数据库中查询出上传后的路径列表
       /* 在页面使用
        
    	 
    	
    	*/
//		List pictureList=pictureDao.getPictureList();
//		for(Picture picture:pictureList){
//			System.out.println(picture.getPath());
//		}
//		request.setAttribute("pictureList",pictureList);
//		System.out.println("===");
//		System.out.println("===");
		return "/layuiUpload";
		
	}
	@ResponseBody
	@RequestMapping(value="upload",method=RequestMethod.POST)
	public Map upString(HttpServletRequest request) throws Exception{
		System.out.println("up");
		Map resultMap=new HashMap();
		Map Map=new HashMap();
		
		
		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
		Map fileMap = multipartRequest.getFileMap();//文件集合
		
			
		
//			if(!file.isEmpty()){
				//上传文件路径
				String path=request.getSession().getServletContext().getRealPath("/imag");//"D:/javaspring框架/FileUpload/WebContent/WEB-INF/imag";
				System.err.println(path);
				// 检查目录
				File uploadDir = new File(path);
				if (!uploadDir.isDirectory()) {
					// 如果不存在,创建文件夹
					if (!uploadDir.exists()) {
						uploadDir.mkdirs();
					}
				}
				
				for (Map.Entry entity : fileMap.entrySet()) {
					SimpleDateFormat df2 = new SimpleDateFormat("yyyyMMddHHmmss");
					String date=df2.format(new Date());
					System.err.println(date+"当前时间");
					MultipartFile file2=entity.getValue();
					String filename=file2.getOriginalFilename();
				
					File filepath=new File(path,filename);
				//判断路径是否存在,如果不存在就创建一个
					if(!filepath.getParentFile().exists()){
						filepath.getParentFile().mkdirs();
					}
				
				
				//重命名
				// 扩展名
				String fileExt = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase();//扩展名
				Date date2=df2.parse(date);
				//新的文件名
				String newFileName=date+"_"+new Random().nextInt(100)+"."+fileExt;
				System.err.println("新文件名:"+newFileName);
				//request.getContextPath()
				//保存的路径
				String Savepath="/imag/"+newFileName;
				System.out.println("存储路径"+Savepath);
		
				pictureDao.insertPicture(date2,newFileName,Savepath);
				//将上传的文件保存到目标文件中
				file2.transferTo(new File(path+File.separator+newFileName));
				System.out.println(path+File.separator+filename);
				
				resultMap.put("code",0);
				resultMap.put("msg","success");
				Map.put("src",path);
				resultMap.put("data",Map);
			}
			return resultMap;
		
	}


2.1. spring配置文件

     


   
    
      
    	
    	
    	
   		
   		
   		
   		
   		
   		
   		
   		
   		    
   		
   		
   		
        
        
            
                
                    
               error     
                
            
     
   		
     
    
      
      
    
    
    
    
   		
 

2.2 mapper 映射文件




    
    
        insert into picture (date,name,path) values(#{date},#{name},#{path})
    
    

你可能感兴趣的:(layui 和springMvc文件图片上传)