|
@@ -6,7 +6,6 @@ import cn.hutool.core.img.ImgUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
|
@@ -20,6 +19,7 @@ import com.xjrsoft.common.page.PageOutput;
|
|
|
import com.xjrsoft.common.utils.UploadUtil;
|
|
|
import com.xjrsoft.common.utils.VoToColumnUtil;
|
|
|
import com.xjrsoft.config.OSSConfig;
|
|
|
+import com.xjrsoft.module.organization.dto.DownloadFileDto;
|
|
|
import com.xjrsoft.module.organization.entity.User;
|
|
|
import com.xjrsoft.module.oss.factory.OssFactory;
|
|
|
import com.xjrsoft.module.system.dto.FileDownloadDto;
|
|
@@ -46,6 +46,10 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.validation.Valid;
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.InputStream;
|
|
|
+import java.net.URL;
|
|
|
+import java.net.URLConnection;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
@@ -247,18 +251,27 @@ public class FileController {
|
|
|
|
|
|
@GetMapping("/downloadFile")
|
|
|
@ApiOperation(value = "按照上传文件名下载文件")
|
|
|
- public ResponseEntity<byte[]> downloadFile(@RequestParam Long folderId){
|
|
|
- byte[] resultBtyeAry_temp = fileService.downloadFileByZip(folderId);
|
|
|
- File file = fileService.getOne(
|
|
|
- new QueryWrapper<File>().lambda()
|
|
|
- .eq(File::getFolderId, folderId)
|
|
|
- );
|
|
|
- String encodedFileName = "";
|
|
|
- try{
|
|
|
- encodedFileName = URLEncoder.encode(file.getFileName(), "UTF-8");
|
|
|
- }catch (Exception e){
|
|
|
+ public ResponseEntity<byte[]> downloadFile(@Valid DownloadFileDto dto){
|
|
|
+ try {
|
|
|
+ URL url = new URL(dto.getFileUrl());
|
|
|
+ URLConnection conn = url.openConnection();
|
|
|
+ InputStream in = conn.getInputStream();
|
|
|
+
|
|
|
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
|
|
+ byte[] buffer = new byte[1024];
|
|
|
+ int bytesRead;
|
|
|
+ while ((bytesRead = in.read(buffer)) != -1) {
|
|
|
+ outputStream.write(buffer, 0, bytesRead);
|
|
|
+ }
|
|
|
+ byte[] byteArray = outputStream.toByteArray();
|
|
|
+ in.close();
|
|
|
+ outputStream.close();
|
|
|
|
|
|
+ String[] split = dto.getFileUrl().split("\\.");
|
|
|
+ String fileSuffiex = split[split.length - 1];
|
|
|
+ return RT.fileStream(byteArray, dto.getFileName() + "." + fileSuffiex);
|
|
|
+ } catch (IOException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
}
|
|
|
- return RT.fileStream(resultBtyeAry_temp, encodedFileName + file.getFileType());
|
|
|
}
|
|
|
}
|