网站打不开如何解决,php网站开发 多少钱,茶叶网页设计素材,wordpress如何让别人注册JavaWeb 文件上传本地存储阿里云OSS配置文件 yml配置文件 文件上传
前端页面三要素#xff1a; 表单项type“file” 表单提交方式post 表单的enctype属性multipart/form-data
本地存储
保证上传的文件不重复 //获取原始文件名String originalFilename image.getOriginalFi… JavaWeb 文件上传本地存储阿里云OSS配置文件 yml配置文件 文件上传
前端页面三要素 表单项type“file” 表单提交方式post 表单的enctype属性multipart/form-data
本地存储
保证上传的文件不重复 //获取原始文件名String originalFilename image.getOriginalFilename();//构造唯一的文件名不能重复 --uuid通用唯一标识码 7b708925-8440-4069-b5da.txtint index originalFilename.lastIndexOf(.);String extname originalFilename.substring(index);String newFileName UUID.randomUUID().toString() extname;log.info(新的文件名{},newFileName);//将文件存储在服务器的磁盘目录中image.transferTo(new File(G:\\java\\newFileName));在SpringBoot文件默认单个最大为1M.如果要上传大文件可以进行以下配置
#配置单个文件上传大小限制
spring.servlet.multipart.max-file-size10MB#配置单个请求最大大小限制(一个请求可传多个文件)
spring.servlet.multipart.max-request-size100MB由于本地存储无法在客户端直接访问磁盘易满、易坏 所以我们现在使用云服务器来存储
阿里云OSS
云存储服务你可以通过网络随时存储各种文件。 !--阿里云OSS依赖--dependencygroupIdcom.aliyun.oss/groupIdartifactIdaliyun-sdk-oss/artifactIdversion3.15.1/version/dependency根据阿里云OSS提供的文档写一个阿里云 OSS 工具类
package com.w.utils;import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.UUID;/*** 阿里云 OSS 工具类*/Component
public class AliOSSUtils {private String endpoint https://oss-cn-beijing.aliyuncs.com;private String accessKeyId LTAI5t66tmegXDdb9NzyUtho;private String accessKeySecret JmzMGZK6FqJPBY21t3oYVvAyFRZ0m1;private String bucketName swmdys-tlias;/*** 实现上传图片到OSS*/public String upload(MultipartFile file) throws IOException {// 获取上传的文件的输入流InputStream inputStream file.getInputStream();// 避免文件覆盖String originalFilename file.getOriginalFilename();String fileName UUID.randomUUID().toString() originalFilename.substring(originalFilename.lastIndexOf(.));//上传文件到 OSSOSS ossClient new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);ossClient.putObject(bucketName, fileName, inputStream);//文件访问路径String url endpoint.split(//)[0] // bucketName . endpoint.split(//)[1] / fileName;// 关闭ossClientossClient.shutdown();return url;// 把上传到oss的路径返回}}
把本地存储的注释掉改为存入阿里云 Autowiredprivate AliOSSUtils aliOSSUtils;PostMapping(/upload)public Result upload(MultipartFile image) throws IOException {log.info(文件上传文件名{}, image.getOriginalFilename());//调用阿里云OSS工具类进行文件上传String url aliOSSUtils.upload(image);log.info(文件上传完成文件访问的url{}, url);return Result.success(url);}配置文件
可以直接把阿里云OSS连接需要参数写下springBoot配置文件中
#阿里云OSS配置
aliyun.oss.endpointhttps://oss-cn-beijing.aliyuncs.com
aliyun.oss.accessKeyIdLTAI5t66tmegXDdb9NzyUtho
aliyun.oss.accessKeySecretJmzMGZK6FqJPBY21t3oYVvAyFRZ0m1
aliyun.oss.bucketNameswmdys-tliasValue(${aliyun.oss.endpoint})private String endpoint;Value(${aliyun.oss.accessKeyId})private String accessKeyId;Value(${aliyun.oss.accessKeySecret})private String accessKeySecret;Value(${aliyun.oss.bucketName})private String bucketName;yml配置文件
在实际开发中我们springBoot配置文件一般不用.properties而是使用.yml
文件优先级 application.properties application.yml 所以只写一个application.yml就行了
# bootstrap.properties bootstrap.yml application.properties application.ymlspring:#数据库连接信息datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3307/tliasusername: rootpassword: 123456#文件上传的配置servlet:multipart:max-file-size: 10MBmax-request-size: 100MB
#Mybatis配置
mybatis:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmap-underscore-to-camel-case: true#阿里云OSS
aliyun:oss:endpoint: https://oss-cn-hangzhou.aliyuncs.comaccessKeyId: LTAI4GCH1vX6DKqJWxd6nEuWaccessKeySecret: yBshYweHOpqDuhCArrVHwIiBKpyqSLbucketName: web-tlias