您当前的位置: 首页 >  mybatis

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

spring和mybatis框架中实现文件上传功能

小志的博客 发布时间:2017-10-20 10:49:11 ,浏览量:0


import java.io.File;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
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 org.springframework.web.multipart.commons.CommonsMultipartResolver;

===========文件上传controller层===========
@Controller
@RequestMapping("/file")
public class FileController extends BaseController{

    //文件上传方法 参数fileBean为文件实体
    @RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
    @ResponseBody
    public FileBean uploadFile(FileBean fileBean
            HttpServletRequest request) throws Exception {
        CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession()
                .getServletContext());
        commonsMultipartResolver.setDefaultEncoding("utf-8");
        // 判断是否有文件上传  
        if (commonsMultipartResolver.isMultipart(request)) {//有文件上传  
            MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
            Iterator iter = multiRequest.getFileNames();
            while (iter.hasNext()) {
                MultipartFile imageFile = multiRequest.getFile(iter.next().toString());//(String) iter.next()
                //文件保存方法,其中参数imageFile为文件路径,fileBean文件实体
                fileBean= fileService.addFile(request, imageFile, fileBean);
            }
        }
        return fileBean;
    }
    
}

===========文件上传service层===========
FileBean addFile(HttpServletRequest request,MultipartFile imageFile, FileBean fileBean);
			
			
			
			
===========文件上传service实现层===========
@Override
	@Transactional
	public FileBean addFile(HttpServletRequest request, MultipartFile imageFile,FileBean fileBean) {
		try {
			String filePath = request.getSession().getServletContext().getRealPath("/static/fileAttach");
			File file2 = new File(filePath);
			if (!file2.exists()) {
				file2.mkdirs();
			}
			String name=imageFile.getOriginalFilename().substring(imageFile.getOriginalFilename().lastIndexOf("."));
			String newName = BasicTool.getUUID()+name;//
			String path=filePath+File.separator+newName;
			File file1= new File(path);
			if(file1.exists()){
				file1.delete();
			}
			imageFile.transferTo(file1);
			fileBean.setF_name(imageFile.getOriginalFilename());//文件名称
			fileBean.setF_filepath("/static/fileAttach/" + newName);文件路径
			fileBean.setId(BasicTool.getUUID());文件id
			fileBean.setF_uploadtime(new Date());文件上传时间
			int addCount=0;
			addCount= fileWriteMapper.addFile(fileBean);//保存方法
		} catch (Exception e) {
			e.printStackTrace();
		} 
		return fileBean;
	}
	
	
===========文件上传dao层===========	
int addFile(FileBean fileBean);

===========文件上传dao实现层===========	
 
    insert into t_file
    
      
        id,
      
      
        name,
      
      
        filepath,
      
      
        uploadtime,
      
    
    
      
        #{id},
      
      
        #{name},
      
      
        #{filepath},
      
      
        #{uploadtime},
      
    
  
	 iter = multiRequest.getFileNames();
            while (iter.hasNext()) {
                MultipartFile imageFile = multiRequest.getFile(iter.next().toString());//(String) iter.next()
                //文件保存方法,其中参数imageFile为文件路径,fileBean文件实体
                fileBean= fileService.addFile(request, imageFile, fileBean);
            }
        }
        return fileBean;
    }
    
}

===========文件上传service层===========
FileBean addFile(HttpServletRequest request,MultipartFile imageFile, FileBean fileBean);
			
			
			
			
===========文件上传service实现层===========
@Override
	@Transactional
	public FileBean addFile(HttpServletRequest request, MultipartFile imageFile,FileBean fileBean) {
		try {
			String filePath = request.getSession().getServletContext().getRealPath("/static/fileAttach");
			File file2 = new File(filePath);
			if (!file2.exists()) {
				file2.mkdirs();
			}
			String name=imageFile.getOriginalFilename().substring(imageFile.getOriginalFilename().lastIndexOf("."));
			String newName = BasicTool.getUUID()+name;//
			String path=filePath+File.separator+newName;
			File file1= new File(path);
			if(file1.exists()){
				file1.delete();
			}
			imageFile.transferTo(file1);
			fileBean.setF_name(imageFile.getOriginalFilename());//文件名称
			fileBean.setF_filepath("/static/fileAttach/" + newName);文件路径
			fileBean.setId(BasicTool.getUUID());文件id
			fileBean.setF_uploadtime(new Date());文件上传时间
			int addCount=0;
			addCount= fileWriteMapper.addFile(fileBean);//保存方法
		} catch (Exception e) {
			e.printStackTrace();
		} 
		return fileBean;
	}
	
	
===========文件上传dao层===========	
int addFile(FileBean fileBean);

===========文件上传dao实现层===========	
 
    insert into t_file
    
      
        id,
      
      
        name,
      
      
        filepath,
      
      
        uploadtime,
      
    
    
      
        #{id},
      
      
        #{name},
      
      
        #{filepath},
      
      
        #{uploadtime},
      
    
  
	

 

 

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0469s