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

烟台网站建设ytwzjs许昌长葛网站建设制作设计

烟台网站建设ytwzjs,许昌长葛网站建设制作设计,嘉兴网站开发公司电话,溧阳 做网站前言 本节内容我们主要介绍一下如何在springboot项目中集成fastdfs组件#xff0c;实现文件的上传与下载。关于fastdfs服务中间键的安装过程#xff0c;本节内容不做介绍。fastdfs是一个轻量级的分布式文件系统#xff0c;也是我们文件存储中常常使用的组件之一#xff0c…前言 本节内容我们主要介绍一下如何在springboot项目中集成fastdfs组件实现文件的上传与下载。关于fastdfs服务中间键的安装过程本节内容不做介绍。fastdfs是一个轻量级的分布式文件系统也是我们文件存储中常常使用的组件之一主要包括文件存储、文件同步、文件访问实现了文件存储和负载均衡的问题。 正文 ①引入fastdfs客户端的maven依赖 dependencygroupIdcom.github.tobato/groupIdartifactIdfastdfs-client/artifactIdversion1.27.2/version /dependency ②在application.yml配置fastdfs的属性参数值 fdfs:so-timeout: 1501 # 超时时间connect-timeout: 601 # 连接超时时间tracker-list: # tracker地址你的虚拟机服务器地址端口默认是22122- 125.27.107.218:22122 ③引入fastdfs客户端组件交由spring管理 package com.ht.atp.plat.config;import com.github.tobato.fastdfs.FdfsClientConfig; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableMBeanExport; import org.springframework.context.annotation.Import; import org.springframework.jmx.support.RegistrationPolicy;Configuration Import(FdfsClientConfig.class) EnableMBeanExport(registration RegistrationPolicy.IGNORE_EXISTING) public class FastDfsConfig {} ④创建springboot文件上传与下载的控制层接口FdfsRecordController.class package com.ht.atp.plat.controller;import com.ht.atp.plat.common.Result; import com.ht.atp.plat.service.FdfsRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile;Api(tags {文件管理}) RestController RequestMapping(/v1/fdfs/record) public class FdfsRecordController {Autowiredprivate FdfsRecordService fdfsRecordService;ApiOperation(value 文件上传)PostMapping(value uploadFile)public ResultString uploadFile(ApiParam(name file, value 上传的文件)RequestParam(value file) MultipartFile file) {String url fdfsRecordService.uploadFile(file);return Result.success(url);}ApiOperation(value 文件下载)GetMapping(value downloadFile)public ResultString downloadFile(ApiParam(name url, value 下载地址)RequestParam(value url) String url) {String data fdfsRecordService.downloadFile(url);return Result.success(data);}}⑤创建springboot文件上传与下载的业务接口层FdfsRecordService.class package com.ht.atp.plat.service;import com.baomidou.mybatisplus.extension.service.IService; import com.ht.atp.plat.entity.FdfsRecord; import org.springframework.web.multipart.MultipartFile;public interface FdfsRecordService extends IServiceFdfsRecord {/*** 上传文件** param file* return*/String uploadFile(MultipartFile file);/*** 文件下载* param url* return*/String downloadFile(String url); } ⑥创建springboot文件上传与下载的业务接口实现层FdfsRecordServiceImpl.class package com.ht.atp.plat.service.impl;import cn.hutool.core.codec.Base64; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.tobato.fastdfs.domain.fdfs.StorePath; import com.github.tobato.fastdfs.domain.proto.storage.DownloadByteArray; import com.github.tobato.fastdfs.service.FastFileStorageClient; import com.ht.atp.plat.entity.FdfsRecord; import com.ht.atp.plat.exception.BusinessException; import com.ht.atp.plat.mapper.FdfsRecordMapper; import com.ht.atp.plat.service.FdfsRecordService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile;import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.time.LocalDateTime;Service public class FdfsRecordServiceImpl extends ServiceImplFdfsRecordMapper, FdfsRecord implements FdfsRecordService {Autowiredprivate FastFileStorageClient storageClient;Overridepublic String uploadFile(MultipartFile file) {try {BufferedImage bufferedImage ImageIO.read(file.getInputStream());if (bufferedImage null) {throw new BusinessException(文件内容不合法无法上传);}String fileName file.getOriginalFilename();String suffix ;if (StringUtils.isNotEmpty(fileName)) {String[] splitFileName fileName.split(\\.);if (splitFileName ! null splitFileName.length 1) {suffix splitFileName[splitFileName.length - 1];}}FdfsRecord fdfsRecord new FdfsRecord();fdfsRecord.setModifyTime(LocalDateTime.now());fdfsRecord.setCreateTime(LocalDateTime.now());fdfsRecord.setSuffixName(suffix);fdfsRecord.setName(fileName);StorePath storePath this.storageClient.uploadFile(file.getInputStream(), file.getSize(), suffix, null);fdfsRecord.setUrl(storePath.getFullPath());baseMapper.insert(fdfsRecord);return storePath.getFullPath();} catch (Exception e) {throw new BusinessException(文件上传服务异常请稍后重试);}}Overridepublic String downloadFile(String url) {String group url.substring(0, url.indexOf(/));String path url.substring(url.indexOf(/) 1);DownloadByteArray byteArray new DownloadByteArray();byte[] data this.storageClient.downloadFile(group, path, byteArray);String encodeData Base64.encode(data);return encodeData;} }⑦创建springboot文件资源信息存储的持久化层FdfsRecordMapper.class实现文件资源信息的持久化存储 package com.ht.atp.plat.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ht.atp.plat.entity.FdfsRecord;public interface FdfsRecordMapper extends BaseMapperFdfsRecord {}⑧创建springboot文件资源信息存储的持久化层FdfsRecordMapper.xml实现文件资源信息的持久化存储 ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.ht.atp.plat.mapper.FdfsRecordMapper/mapper⑨创建springboot文件资源信息存储的实体类FdfsRecord.class package com.ht.atp.plat.entity;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter;import java.io.Serializable; import java.time.LocalDateTime;Getter Setter TableName(fdfs_record) ApiModel(value FdfsRecord对象, description ) public class FdfsRecord implements Serializable {private static final long serialVersionUID 1L;ApiModelProperty(主键ID)TableId(value id, type IdType.ASSIGN_ID)private String id;ApiModelProperty(业务ID)TableField(business_id)private String businessId;ApiModelProperty(服务名称)TableField(service_name)private String serviceName;ApiModelProperty(文件名称)TableField(name)private String name;ApiModelProperty(文件地址)TableField(url)private String url;ApiModelProperty(后缀名称)TableField(suffix_name)private String suffixName;ApiModelProperty(创建时间)TableField(create_time)private LocalDateTime createTime;ApiModelProperty(创建人)TableField(create_user)private String createUser;ApiModelProperty(修改时间)TableField(modify_time)private LocalDateTime modifyTime;ApiModelProperty(修改人)TableField(modify_user)private String modifyUser;}⑩ 使用swagger测试文件上传功能 ⑪使用swagger测试文件下载功能 结语 通过至此关于springboot集成fastdfs上传与下载功能到这里就结束了下期见。。。
http://www.dnsts.com.cn/news/18507.html

相关文章:

  • 东台网站建设找哪家好镇江vi设计
  • 网站服务器的选择有哪几种方式?安徽阜阳网站建设公司
  • 建设银行个人网站打不开濮阳新闻最新消息
  • 网站建设与维护试题及答案外贸seo教程
  • 国外知名设计网站大全公司营销型网站制作
  • 大庆建设网站首页dede网站头部不显示调用的名称
  • 公司域名更改 网站怎么做提示宣传网页模板
  • 做盗版网站 国外服务器wordpress静态首页
  • 网站建设 腾云代运营公司
  • 自己做的网站怎么放到外网上广州专业网站建设哪家好
  • 东莞网站建设制作哪家好最新的国外新闻10条
  • 中国建设银行黄冈分行网站阿里云 wordpress ftp
  • 徐州在线制作网站wordpress 获取备案号
  • 专业网站 建设公司搜索引擎优化课程
  • 牡丹江市营商环境建设监督局网站市场营销策划方案3000字
  • 江西赣州网站网页制作基础教程例子
  • 宝安-网站建设信科网络网站续费公司
  • 学做网站论坛会员怎么样做视频包的网站
  • 网站建设费用申请报告有哪些小程序免费模板平台
  • 高端文化网站模板制作网站在本机运行
  • 苏州网站设计价格房地产政策政策最新消息
  • 网站建设亮点宁波seo在线优化
  • 网站建设 代码下载海南省建设网站
  • 网站开发公司分析系统搭建
  • 哪个网站可以找做中厚板的公司制作网页的步骤搜集素材
  • 长沙做网站多少钱免费域名申请网站大全下载
  • 网络公司手机网站模板小米官网页面
  • 泰安电脑网站建设电话中企动力网站模板
  • 成都市城乡建设局网站房地产新闻头条
  • 网站备案找谁宁波奢华做网站排名