Browse Source

feature1.0.0:添加文件下载方法

master
chengkun 4 years ago
parent
commit
e056dc8fed
  1. 8
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java
  2. 8
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/MinioService.java
  3. 20
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/MinioSysFileServiceImpl.java
  4. 2
      pom.xml

8
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java

@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -68,4 +69,11 @@ public class SysFileController
} }
return R.ok(url); return R.ok(url);
} }
@PostMapping("/download")
@ResponseBody
public R download(@RequestParam("fileName") String fileName, HttpServletResponse response) {
minioService.download(fileName,response);
return R.ok();
}
} }

8
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/MinioService.java

@ -2,6 +2,7 @@ package com.bnyer.file.service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream; import java.io.InputStream;
/** /**
@ -28,4 +29,11 @@ public interface MinioService {
* @throws Exception * @throws Exception
*/ */
String uploadFileByThumb(MultipartFile file) throws Exception; String uploadFileByThumb(MultipartFile file) throws Exception;
/**
* 下载图片
* @param fileName 文件名
* @param response 响应
*/
void download(String fileName, HttpServletResponse response);
} }

20
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/MinioSysFileServiceImpl.java

@ -3,7 +3,9 @@ package com.bnyer.file.service;
import com.bnyer.common.core.exception.ServiceException; import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.file.config.MinioConfig; import com.bnyer.file.config.MinioConfig;
import com.bnyer.file.utils.ImgUtil; import com.bnyer.file.utils.ImgUtil;
import io.minio.ObjectStat;
import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.compress.utils.IOUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -11,8 +13,10 @@ import com.bnyer.file.utils.FileUploadUtils;
import io.minio.MinioClient; import io.minio.MinioClient;
import io.minio.PutObjectArgs; import io.minio.PutObjectArgs;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.InputStream; import java.io.InputStream;
import java.net.URLEncoder;
/** /**
* Minio 文件存储 * Minio 文件存储
@ -69,4 +73,20 @@ public class MinioSysFileServiceImpl implements MinioService
client.putObject(args); client.putObject(args);
return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + multipartFile.getName(); return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + multipartFile.getName();
} }
@Override
public void download(String fileName, HttpServletResponse response) {
// 获取对象的元数据
try{
ObjectStat stat = client.statObject(minioConfig.getBucketName(), fileName);
response.setContentType(stat.contentType());
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
InputStream is = client.getObject(minioConfig.getBucketName(), fileName);
IOUtils.copy(is, response.getOutputStream());
is.close();
}catch (Exception e){
e.printStackTrace();
}
}
} }

2
pom.xml

@ -36,7 +36,7 @@
<velocity.version>2.3</velocity.version> <velocity.version>2.3</velocity.version>
<fastjson.version>1.2.80</fastjson.version> <fastjson.version>1.2.80</fastjson.version>
<jjwt.version>0.9.1</jjwt.version> <jjwt.version>0.9.1</jjwt.version>
<minio.version>8.2.2</minio.version> <minio.version>7.1.0</minio.version>
<poi.version>4.1.2</poi.version> <poi.version>4.1.2</poi.version>
<commons-collections.version>3.2.2</commons-collections.version> <commons-collections.version>3.2.2</commons-collections.version>
<transmittable-thread-local.version>2.12.2</transmittable-thread-local.version> <transmittable-thread-local.version>2.12.2</transmittable-thread-local.version>

Loading…
Cancel
Save