SpringMVC+Spring+MyBatis 整合與圖片上傳簡單示例


3、創建Controller類

package com.cenobitor.controller;

import com.cenobitor.service.UploadFileService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.*;

import org.springframework.web.multipart.MultipartFile;

@Controller

public class UploadFileController {

@Autowired

private UploadFileService uploadFileService;

//圖片上傳用MultipartFile接收文件,其中參數名要表單中的文件名一致

@RequestMapping("/uploadpic")

public String uploadPic(MultipartFile picFile) throws Exception {

String picUrl = uploadFileService.UploadPic(picFile);

if (picUrl == null){

return "redirect:error.html";

}

//重定向預覽圖片

return "redirect:"+picUrl;

}

}

4、創建service層

public interface UploadFileService {

public String UploadPic(MultipartFile picFile);

}

package com.cenobitor.service.impl;

import com.cenobitor.mapper.PicMapper;

import com.cenobitor.pojo.Pic;

import com.cenobitor.service.UploadFileService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import org.springframework.transaction.annotation.Transactional;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;

import java.io.IOException;

import java.util.UUID;

@Service

@Transactional

public class UploadFileServiceImpl implements UploadFileService {

@Autowired

private PicMapper picMapper;

@Override

public String UploadPic(MultipartFile picFile) {

try {

// 圖片新名字

String name = UUID.randomUUID().toString();

// 圖片原名字

String oldName = picFile.getOriginalFilename();

// 後綴名

String exeName = oldName.substring(oldName.lastIndexOf("."));

//保存圖片路徑為絕對路徑

File pic = new File("/Users/Shared/jpg/" + name + exeName);

// 保存圖片到本地磁盤

picFile.transferTo(pic);

//保存數據到數據庫中

picMapper.add(new Pic(name,"../jpg/"+name+exeName));

return "/jpg/"+name+exeName;

} catch (IOException e) {

e.printStackTrace();

return null;

}

}

}

5、創建dao層(mapper層)

package com.cenobitor.mapper;

import com.cenobitor.pojo.Pic;

public interface PicMapper {

//添加圖片

int add(Pic pic);

}

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

insert into

pic(name,url)

values

(#{name},#{url});

6、項目的目錄結構

SpringMVC+Spring+MyBatis 整合與圖片上傳簡單示例

7、效果

SpringMVC+Spring+MyBatis 整合與圖片上傳簡單示例


分享到:


相關文章: