diff --git a/routers/images.go b/routers/images.go index dda1115..cc1d12b 100644 --- a/routers/images.go +++ b/routers/images.go @@ -318,12 +318,20 @@ func ImagesItemPatch(w http.ResponseWriter, r *http.Request) { // 删除一条图片 func ImagesItemDelete(w http.ResponseWriter, r *http.Request) { image := models.Image{ID: utils.ParamInt(mux.Vars(r)["id"], 0)} - if err := configs.ORMDB().Delete(&image).Error; err != nil { - log.Println(err) + if err := configs.ORMDB().First(&image).Error; err != nil { + w.WriteHeader(http.StatusNotFound) + w.Write([]byte("图片不存在")) return } - // TODO: 删除本地文件 - // 删除所有喜欢此图片的记录(双向解绑, A是user, B是image) + if err := configs.ORMDB().Delete(&image).Error; err != nil { + w.WriteHeader(http.StatusInternalServerError) + w.Write([]byte("删除失败")) + return + } + // 删除本地图像文件 image.Path + os.Remove(image.Path) + + // 删除所有用户喜欢此图片的记录(双向解绑, A是user, B是image) models.LikeImage.RemoveB(strconv.Itoa(image.ID)) w.Header().Set("Content-Type", "application/json; charset=utf-8")