当前位置: 首页 > news >正文

32.图片上传功能

上传图片功能

 @PostMapping("blog")public ApiResponse uploadImage(@RequestParam("file") MultipartFile image) {try {//获取原始文件名称String originalFilename = image.getOriginalFilename();//生成新的文件名String fileName = createNewFileName(originalFilename);//保存文件image.transferTo(new File(UserConstant.IMAGE_UPLOAD_DIR, fileName));//返回结果log.debug("文件上传成功,{}", fileName);return ApiResponse.success(fileName);}catch (Exception e) {throw new RuntimeException("文件上传失败", e);}}private String createNewFileName(String originalFilename) {//获取后缀名String suffix = StrUtil.subAfter(originalFilename, ".", true);//生成目录String name = UUID.randomUUID().toString();int hash = name.hashCode();int d1 = hash & 0xF;int d2 = (hash >> 4) & 0xF;//判断目录是否存在File dir = new File(UserConstant.IMAGE_UPLOAD_DIR, StrUtil.format("/blogs/{}/{}", d1, d2));if(!dir.exists()) {dir.mkdirs();}//生成文件名return StrUtil.format("/blogs/{}/{}/{}.{}", d1, d2, name, suffix);}

分页查询功能

@Overridepublic List<Blog> queryHotBlog(Integer current) {//根据点赞数量倒序排列Page<Blog> page = query().orderByDesc("liked").page(new Page<>(current, UserConstant.MAX_PAGE_SIZE));List<Blog> records = page.getRecords();//这里采用lambda表达式简写records.forEach(this::queryBlogUser);return records;}/*** 给BLog对象添加用户信息* @param blog*/private void queryBlogUser(Blog blog) {User user = userService.getById(blog.getUserId());blog.setName(user.getNickName());blog.setIcon(user.getIcon());}

注意lambda简写 

mybatis中使用query()方法分页查询的写法

@Overridepublic void likeBlog(Integer id) {// update tb_blog set ... whereupdate().setSql("liked = liked + 1").eq("id", id).update();}

mybatis中update()方法使用

http://www.dtcms.com/a/553894.html

相关文章:

  • 【IDE】idea 本地启动时,卡在writing classes
  • Flink -DataStream API 流处理的核心接口
  • Android EDLA 打开5G热点失败分析解决2
  • 长沙网站seo收费网站怎么做图片动态图片不显示不出来的
  • (107页PPT)园区智能楼宇BIM云平台方案(附下载方式)
  • 昆山苏州网站建设网站怎么修改好之后再上线
  • 【搭建】个人博客网站的搭建
  • Rust开发之Trait作为参数与返回值使用
  • 深入解析linux 的 rsyncd服务
  • 长沙做旅游网站多少钱建设厅网站用户名和密码
  • 设计网站推广公司网页制作怎样做安居客网站
  • Python快速入门专业版(五十五):Requests库入门:HTTP请求实战与Header伪装(避坑403反爬)
  • 软件设计师重点笔记-4
  • rabbitmq-k8s下双架构镜像+手动sts部署完全文档(上)
  • 如何使用 C# 将 CSV 数据轻松转换为 PDF
  • 【每天一个知识点】数据湖(Data Lake)与数据仓库(Data Warehouse)
  • 深入理解外边距重叠与 BFC —— 为什么粉色背景多出一块?
  • 网站开发学什么数据库网站建设美工百度百科
  • 怎样制作网站站点免费的网站认证
  • 使用cvx工具箱求解svm的原问题及其对偶问题
  • 国内免费无版权视频素材网站泉州做网站设计公司
  • CVPR-2025 | 端到端导航智能体的推理能力探究:动态系统学习、规划能力与记忆使用
  • 百度网盘下载怎么免费提速?2025最新教程分享
  • 一个交易网站开发的成本是多少钱上海市中学生典型事例网站
  • 网站 验证码错误本地南京网站建设
  • 如何通过右键实现音视频/PDF/Office 一键格式转换?
  • 深入理解 Python 的 __init_subclass__ 方法:自定义类行为的新方式 (Effective Python 第48条)
  • 用遗传算法求解“旅行商问题(TSP)”
  • 蜜桃汇免费的wordpress账号网站文章来源seo
  • 嘉立创EDA四层板PCB学习记录(44小点)