巴中自助网站建设,汕头企业建站模板,公司网站建设需要准备哪些资料,推广运营是什么工作一、本地上传
概念#xff1a;将前端上传的文件保存到自己的电脑
作用#xff1a;前端上传的文件到后端#xff0c;后端存储的是一个临时文件#xff0c;方法执行完毕会消失#xff0c;把临时文件存储到本地硬盘中。 1、导入文件上传的依赖
dependencygrou…一、本地上传
概念将前端上传的文件保存到自己的电脑
作用前端上传的文件到后端后端存储的是一个临时文件方法执行完毕会消失把临时文件存储到本地硬盘中。 1、导入文件上传的依赖
dependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1.3.1/version
/dependency
dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.4/version
/dependency
2、写一个上传文件的接口注意文件保存到本地需要写自己的本地路径
RestController
public class UploadController {PostMapping(/content/link/upload)public ResponseResult upload(MultipartFile file, HttpServletRequest request) throws IOException {//本地上传的目的将前端上传的文件转存到本地中是因为前端上传的文件后端存的是临时文件方法运行完毕文件也会消失//获取上传文件的名字String filenamefile.getOriginalFilename();//获取文件的扩展名String[] strings filename.split(\\.);String kzName strings[strings.length - 1];//随机的文件名UUID uuid UUID.randomUUID();//把随机文件名和扩展名拼接String nameuuidkzName;//本地文件名称如果不是XXX.jpg的话需要改成String nameuuid.kzName;//把临时文件存储到本地硬盘中file.transferTo(new File(自己的本地路径,name));return ResponseResult.okResult();}
}
3、前端作相应修改保持请求一致协议和端口不能丢 4、启动项目即可实现此时本地路径中就会出现上传的文件。
本地上传实现不了回显需要用到阿里云的对象存储。
5、如果文件太大需要在application.yml中设置上传的文件大小 servlet:multipart:#指定单个文件上传的大小max-file-size: 2MB#指定单次上传文件的大小max-request-size: 5MB 二、阿里云OSS
2.1 通过本地存储上传阿里云OSS
1、注册阿里云实名认证
2、开通对象存储OSS
2.1点击工作台点击开始免费试用 2.2找到对象存储点击立即试用 2.3创建Bucket桶 服务器位置可以任意选择不过要跟后端endpoint对应上 2.4Bucket创建完成
3、参照官方SDK入门
3.1找到SDK的说明
3.2找到文件上传参考部分
3.2导入OSS依赖 JDK9以下可直接复制该依赖 dependencygroupIdcom.aliyun.oss/groupIdartifactIdaliyun-sdk-oss/artifactIdversion3.17.4/version
/dependency 如果使用的是Java 9及以上的版本则需要添加JAXB相关依赖。添加JAXB相关依赖示例代码如下
dependencygroupIdjavax.xml.bind/groupIdartifactIdjaxb-api/artifactIdversion2.3.1/version
/dependency
dependencygroupIdjavax.activation/groupIdartifactIdactivation/artifactIdversion1.1.1/version
/dependency
!-- no more than 2.3.3--
dependencygroupIdorg.glassfish.jaxb/groupIdartifactIdjaxb-runtime/artifactIdversion2.3.3/version
/dependency 3.3复制3.1部分上传文件流的代码点击复制到后端相应的包 粘贴 然后会自动粘贴并生成一个名为Demo的类
4、获取AccessKey 没有的话创建AccessKey即可生成accessKeyId和accessKeySecret。
5、运行Demo并刷新阿里云文件上传成功 点击详情复制文件的URL路径到前端文件回显成功
2.2 文件直接上传阿里云OSS
1、封装一个AliOSSUtils类
Component
public class AliOSSUtils {private String endpointhttps://oss-cn-hangzhou.aliyuncs.com;private String accessKeyIdLTAI5t6HZqg2bNixh5Hr5uqz;private String accessKeySecret82qRssIfmQo05j0haZPleiitkQ6LID;private String bucketNameblog27;/** 实现上传图片到OSS*/public String upload(MultipartFile multipartFile) throws IOException {//获取上传的文件的输入流InputStream inputStreammultipartFile.getInputStream();//避免文件覆盖String fileName LocalDateTime.now().format(DateTimeFormatter.ofPattern(yyyy-MM-dd-HH-mm-ss))multipartFile.getOriginalFilename();//上传文件到OSSOSS ossClientnew OSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);ossClient.putObject(bucketName,fileName,inputStream);//文件访问路径String urlendpoint.split(//)[0]//bucketName.endpoint.split(//)[1]/fileName;//关闭ossClientossClient.shutdown();return url;}
}
2、编写一个上传文件的接口
3、前端作相应的修改上传文件必须为POST请求此处路径必须为接口全路径
额外小知识想让上传的图片URL地址直接返回到前端的文本框中并回显成功图中红框部分为文本框用来回显图片的URL地址
1、在新增或修改的时候自动获取到阿里云图片的URL地址后端添加接口
2、修改前端添加一个上传成功的回调函数
上传成功后将返回的URL设置到文本框中