Springboot实现上传图片,删除路径下图片

html代码

在form表单中,type类型写file就可以实现上传文件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="multipart/form-data; charset=utf-8" />
    <title>上传加分项</title>
</head>
<body>
<form action="/subMaterials" method="post" enctype="multipart/form-data">
    <input type="text" name="type" placeholder="奖项类型"><br> <!-- 下拉框,三选一 -->
    <input type="text" name="awardName" placeholder="奖项名称"><br>
    <input type="text" name="score" placeholder="加分数"><br>
    <input type="file" name="materials"><br>
    <input type="submit" value="提交">&nbsp;&nbsp;&nbsp;
</form>
</body>
</html>

Controller层

需要一个MultipartFile类来接收value="materials"的file文件。
这里要注意的是如果使用这种方法上传文件,只能使用POST方法

@PostMapping("/subMaterials")
public String subMaterials(@RequestParam(value = "materials") MultipartFile file, HttpServletRequest request) {
    String info = examineService.insertAwardTemp(file);
    return "index";
}

Service层

使用file.transferTo(Paths.get(filePath))方法实现文件的转存路径。

public String insertAwardTemp(AwardTemp awardTemp, MultipartFile file) {
    String filePath = "support/" + awardTemp.getClassMajor() + "/" + awardTemp.getAwardName() + "-" + awardTemp.getName() + ".jpg";
    try {
        file.transferTo(Paths.get(filePath));
        return "上传成功";
    } catch (IOException e) {
        e.printStackTrace();
        return "上传失败"; // 上传失败后所有提交的数据清除,不进入数据库!
    }
}

删除指定路径下的文件

file.delete()方法。

String filePath = "support/" + awardTemp.getClassMajor() + "/" + awardTemp.getAwardName() + "-" + awardTemp.getName() + ".jpg";
File file = new File(filePath);
try {
    boolean flag = file.delete(); // 删除照片
    if (flag) {
        return "删除成功";
    } else {
        return "删除失败!";
    }
} catch (Exception e) {
    e.printStackTrace();
    return "图片不存在或其他异常!";
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值