|
@@ -1,10 +1,16 @@
|
|
package com.ruoyi.web.controller.common;
|
|
package com.ruoyi.web.controller.common;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.List;
|
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
|
-
|
|
|
|
|
|
+import com.aliyun.oss.OSS;
|
|
|
|
+import com.aliyun.oss.OSSClientBuilder;
|
|
|
|
+import com.aliyun.oss.model.PutObjectRequest;
|
|
|
|
+import com.aliyun.oss.model.PutObjectResult;
|
|
|
|
+import com.ruoyi.common.config.RuoYiConfig;
|
|
|
|
+import com.ruoyi.common.constant.Constants;
|
|
|
|
+import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
|
+import com.ruoyi.common.utils.StringUtils;
|
|
|
|
+import com.ruoyi.common.utils.file.FileUploadUtils;
|
|
|
|
+import com.ruoyi.common.utils.file.FileUtils;
|
|
|
|
+import com.ruoyi.framework.config.ServerConfig;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiImplicitParam;
|
|
import io.swagger.annotations.ApiImplicitParam;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -14,13 +20,12 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
-import com.ruoyi.common.config.RuoYiConfig;
|
|
|
|
-import com.ruoyi.common.constant.Constants;
|
|
|
|
-import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
|
-import com.ruoyi.common.utils.StringUtils;
|
|
|
|
-import com.ruoyi.common.utils.file.FileUploadUtils;
|
|
|
|
-import com.ruoyi.common.utils.file.FileUtils;
|
|
|
|
-import com.ruoyi.framework.config.ServerConfig;
|
|
|
|
|
|
+
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+import java.io.InputStream;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 通用请求处理
|
|
* 通用请求处理
|
|
@@ -79,27 +84,43 @@ public class CommonController
|
|
|
|
|
|
@ApiOperation(value = "上传文件", notes = "上传文件接口")
|
|
@ApiOperation(value = "上传文件", notes = "上传文件接口")
|
|
@RequestMapping(value = "/send", method = RequestMethod.POST, headers = "content-type=multipart/form-data")
|
|
@RequestMapping(value = "/send", method = RequestMethod.POST, headers = "content-type=multipart/form-data")
|
|
- public AjaxResult uploadFile(@RequestPart("fire")MultipartFile file) throws Exception
|
|
|
|
- {
|
|
|
|
- try {
|
|
|
|
- // 上传文件路径
|
|
|
|
- String filePath = RuoYiConfig.getUploadPath();
|
|
|
|
- if (filePath == null){
|
|
|
|
- throw new RuntimeException("找不到文件路径");
|
|
|
|
- }
|
|
|
|
|
|
+ public AjaxResult uploadFile(@RequestPart("fire")MultipartFile file) throws Exception {
|
|
//上传并返回文件名
|
|
//上传并返回文件名
|
|
- String filename = FileUploadUtils.upload(filePath, file);
|
|
|
|
- if (filename == null){
|
|
|
|
|
|
+ String ObjectName = FileUploadUtils.upload(file);
|
|
|
|
+ ObjectName.substring(1);
|
|
|
|
+ System.out.println(ObjectName);
|
|
|
|
+ if (ObjectName == null) {
|
|
throw new RuntimeException("获取不到文件名称");
|
|
throw new RuntimeException("获取不到文件名称");
|
|
}
|
|
}
|
|
- String url = serverConfig.getUrl()+filename;
|
|
|
|
- AjaxResult ajax = AjaxResult.success();
|
|
|
|
- ajax.put("fileName",filename);
|
|
|
|
- ajax.put("url",url);
|
|
|
|
- return ajax;
|
|
|
|
- }catch (Exception e){
|
|
|
|
|
|
+ try {
|
|
|
|
+ // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
|
|
|
|
+ String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
|
|
|
|
+ // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
|
|
|
|
+ String accessKeyId = "LTAI5tKoTMqqQxRxoUGvPgNc";
|
|
|
|
+ String accessKeySecret = "tUmxFgyggTeunzkJWCEZ6WpuOjvfnx";
|
|
|
|
+ // 填写Bucket名称,例如examplebucket。
|
|
|
|
+ String bucketName = "c-zm";
|
|
|
|
+ // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
|
|
|
|
+ //String objectName = "exampledir/exampleobject.txt";
|
|
|
|
+ // 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。
|
|
|
|
+ // 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。
|
|
|
|
+ InputStream inputStream = file.getInputStream();
|
|
|
|
+ // 创建OSSClient实例。
|
|
|
|
+ OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
|
|
|
|
+
|
|
|
|
+ // 创建PutObjectRequest对象。
|
|
|
|
+ PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, ObjectName, inputStream);
|
|
|
|
+ // 设置该属性可以返回response。如果不设置,则返回的response为空。
|
|
|
|
+ putObjectRequest.setProcess("true");
|
|
|
|
+ // 创建PutObject请求。
|
|
|
|
+ PutObjectResult result = ossClient.putObject(putObjectRequest);
|
|
|
|
+ // 如果上传成功,则返回200。
|
|
|
|
+ System.out.println(result.getResponse().getStatusCode());
|
|
|
|
+ } catch (Exception e) {
|
|
return AjaxResult.error(e.getMessage());
|
|
return AjaxResult.error(e.getMessage());
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ return AjaxResult.success("https://c-zm.oss-cn-hangzhou.aliyuncs.com/" + ObjectName);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|