SpringBoot前后端分离项目中实现将图片上传至Linux服务器(极简)

FileController

/**
 * 文件上传至服务器
*/
@ApiOperation("文件上传")
@PostMapping("/upload")
public R upload(MultipartFile file){
    String uploadUrl = fileService.upload(file);
    return R.ok().message("文件上传成功").data("url", uploadUrl);
}

FileServiceImpl

 /**
      * 上传文件
      * @param file
     * */
    public String upload(MultipartFile file){
        //图片校验(图片是否为空,图片大小,上传的是不是图片、图片类型(例如只能上传png)等等)
        if (file.isEmpty()) {
            return "图片上传失败";
        }
        //可以自己加一点校验 例如上传的是不是图片或者上传的文件是不是png格式等等 这里省略
        //获取原来的文件名和后缀
        String originalFilename = file.getOriginalFilename();
//        String ext = "." + FilenameUtils.getExtension(orgFileName); --需要导依赖
        String ext = "."+ originalFilename.split("\\.")[1];
        //生成一个新的文件名(以防有重复的名字存在导致被覆盖)
        String uuid = UUID.randomUUID().toString().replace("-", "");
        String newName = uuid + ext;
        //拼接图片上传的路径 url+图片名
        String path = "/home/yhy/testpro/pic/" + newName;
        try {
            file.transferTo(new File(path));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return path;
    }

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Hutool生成图片验证码,并将验证码图片返回给前端,具体步骤如下: 1. 添加Hutool依赖 在`pom.xml`文件添加以下依赖: ```xml <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.14</version> </dependency> ``` 2. 编写验证码生成代码 在Controller编写生成验证码的代码,并将生成的验证码图片以Base64编码的形式返回给前端。 ```java @RestController public class CaptchaController { @GetMapping("/captcha") public String captcha(HttpServletResponse response) throws IOException { // 生成验证码 LineCaptcha captcha = CaptchaUtil.createLineCaptcha(200, 100, 4, 50); // 将验证码图片以Base64编码的形式返回给前端 ByteArrayOutputStream bos = new ByteArrayOutputStream(); captcha.write(bos); byte[] bytes = bos.toByteArray(); return "data:image/png;base64," + Base64.getEncoder().encodeToString(bytes); } } ``` 在上述代码,我们使用了Hutool的`CaptchaUtil`来生成验证码,生成的验证码图片使用`ByteArrayOutputStream`写入内存,然后将内存的验证码图片以Base64编码的形式返回给前端。 3. 前端页面使用验证码 在前端页面,我们可以使用`<img>`标签来显示验证码图片,同时在提交表单时,需要将用户输入的验证码与后端生成的验证码进行比较,以确保用户输入的验证码正确。 ```html <div> <label for="captcha">验证码:</label> <input type="text" name="captcha" id="captcha" required> <img id="captchaImage" src="/captcha"> </div> <button type="submit">提交</button> ``` 在上述代码,我们使用了`<img>`标签来显示验证码图片,同时使用了`<input>`标签来让用户输入验证码。用户提交表单时,需要将用户输入的验证码与后端生成的验证码进行比较,以确保用户输入的验证码正确。 以上就是在SpringBoot前后端分离项目使用Hutool生成图片验证码,并返回给前端的完整步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值