圖片存在本地,項目重新開啓,圖片會消失,一般大點項目都有文件服務器
/**
* 菜品圖片更換上傳
*/
SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd/");
@PostMapping("/icon")
public RespBean updateFoodIcon(MultipartFile file, Food food, HttpServletRequest req){
String format = sdf.format(new Date()); //日期
String realPath = req.getServletContext().getRealPath("/img")+format; //圖片存地址
File folder = new File(realPath);
if(!folder.exists()){
folder.mkdirs();
}
String oldName = file.getOriginalFilename();
String newName = UUID.randomUUID().toString()+oldName.substring(oldName.lastIndexOf("."));
try {
file.transferTo(new File(folder,newName));
String icon = req.getScheme()+"://" + req.getServerName() + ":" + req.getServerPort() + "/img" + format + newName;
food.setIcon(icon);
if (foodService.updateFoodById(food) == 1){
return RespBean.ok("更新成功");
}
} catch (IOException e) {
e.printStackTrace();
}
return RespBean.error("更新失敗");
}
項目中狀態更新
/**
* 狀態更新
* @param food
* @return
*/
@PutMapping("/")
public RespBean updateFoodById(@RequestBody Food food) {
if (foodService.updateFoodById(food) == 1) {
return RespBean.ok("更新成功");
}
return RespBean.error("更新失敗");
}
public Integer updateFoodById(Food food) {
return foodMapper.updateByPrimaryKeySelective(food);
}
int updateByPrimaryKeySelective(Food record);
前端一段判斷代碼
change(data) { //菜品狀態更新
data.state = data.state == 0 ? 1 : 0;
this.putRequest("/food/mana/", data).then(resp=>{
if (resp) {
this.initFoods();
}