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、項目的目錄結構
7、效果
閱讀更多 菜根譚 的文章