添加文件上传进度条
This commit is contained in:
@@ -7,10 +7,7 @@ import io.swagger.annotations.Api;
|
|||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@@ -32,4 +29,13 @@ public class OssController {
|
|||||||
String url = ossService.uploadFileAvatar(file);
|
String url = ossService.uploadFileAvatar(file);
|
||||||
return R.ok().put("url",url);
|
return R.ok().put("url",url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//获取进度条
|
||||||
|
@GetMapping("/getSchedule")
|
||||||
|
public R getSchedule(String fileName){
|
||||||
|
String percent = ossService.getSchedule(fileName);
|
||||||
|
return R.ok().put("percent",percent);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,4 +7,6 @@ public interface OssService {
|
|||||||
String uploadFileAvatar(MultipartFile file);
|
String uploadFileAvatar(MultipartFile file);
|
||||||
|
|
||||||
String uploadHtml(String html,String name);
|
String uploadHtml(String html,String name);
|
||||||
|
|
||||||
|
String getSchedule(String fileName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,14 @@ package com.peanut.modules.oss.service.impl;
|
|||||||
|
|
||||||
import com.aliyun.oss.OSS;
|
import com.aliyun.oss.OSS;
|
||||||
import com.aliyun.oss.OSSClientBuilder;
|
import com.aliyun.oss.OSSClientBuilder;
|
||||||
|
import com.aliyun.oss.model.PutObjectRequest;
|
||||||
import com.peanut.common.utils.ConstantPropertiesUtils;
|
import com.peanut.common.utils.ConstantPropertiesUtils;
|
||||||
|
import com.peanut.modules.oss.controller.PutObjectProgressListener;
|
||||||
import com.peanut.modules.oss.service.OssService;
|
import com.peanut.modules.oss.service.OssService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
@@ -17,6 +21,9 @@ import java.util.UUID;
|
|||||||
@Service
|
@Service
|
||||||
public class OssServiceImpl implements OssService {
|
public class OssServiceImpl implements OssService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StringRedisTemplate redisTemplate;
|
||||||
|
|
||||||
//上传头像到oss
|
//上传头像到oss
|
||||||
@Override
|
@Override
|
||||||
public String uploadFileAvatar(MultipartFile file) {
|
public String uploadFileAvatar(MultipartFile file) {
|
||||||
@@ -35,6 +42,7 @@ public class OssServiceImpl implements OssService {
|
|||||||
InputStream inputStream = file.getInputStream();
|
InputStream inputStream = file.getInputStream();
|
||||||
//获取文件名称
|
//获取文件名称
|
||||||
String fileName = file.getOriginalFilename();
|
String fileName = file.getOriginalFilename();
|
||||||
|
String fileNameProgress = file.getOriginalFilename();
|
||||||
//1 在文件名称里面添加随机唯一的值
|
//1 在文件名称里面添加随机唯一的值
|
||||||
String uuid = UUID.randomUUID().toString().replaceAll("-","");
|
String uuid = UUID.randomUUID().toString().replaceAll("-","");
|
||||||
// yuy76t5rew01.jpg
|
// yuy76t5rew01.jpg
|
||||||
@@ -52,7 +60,9 @@ public class OssServiceImpl implements OssService {
|
|||||||
//第一个参数 Bucket名称
|
//第一个参数 Bucket名称
|
||||||
//第二个参数 上传到oss文件路径和文件名称 aa/bb/1.jpg
|
//第二个参数 上传到oss文件路径和文件名称 aa/bb/1.jpg
|
||||||
//第三个参数 上传文件输入流
|
//第三个参数 上传文件输入流
|
||||||
ossClient.putObject(bucketName,fileName , inputStream);
|
long fileSize = file.getSize();
|
||||||
|
ossClient.putObject(new PutObjectRequest(bucketName,fileName, inputStream).
|
||||||
|
withProgressListener(new PutObjectProgressListener(fileSize,fileNameProgress)));
|
||||||
|
|
||||||
// 关闭OSSClient。
|
// 关闭OSSClient。
|
||||||
ossClient.shutdown();
|
ossClient.shutdown();
|
||||||
@@ -120,4 +130,13 @@ public class OssServiceImpl implements OssService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSchedule(String fileName) {
|
||||||
|
String percent = redisTemplate.opsForValue().get(fileName);
|
||||||
|
if ("100".equals(percent)){
|
||||||
|
redisTemplate.delete(fileName);
|
||||||
|
}
|
||||||
|
return percent==null?"":percent;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user