소스 검색

登记簿批量导出代码提交

jingyuanchao 1 년 전
부모
커밋
c0e32a3eb9

+ 10 - 8
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/service/impl/CoreRegisterBookPdfServiceImpl.java

@@ -30,9 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
+import java.io.*;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -87,17 +85,21 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
         InputStream inputStream = null;
         OutputStream outputStream = null;
         try {
+            //Feign远程调用获取文件流
             Response result = fileService.registerBookCompressPdf(pdfDto);
             Response.Body body = result.body();
             inputStream = body.asInputStream();
-            outputStream = response.getOutputStream();
+            BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
+            response.setHeader("Content-Disposition", result.headers().get("Content-Disposition").toString().replace("[", "").replace("]", ""));
+            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(response.getOutputStream());
             int length = 0;
             byte[] temp = new byte[1024 * 10];
-            while ((length = inputStream.read(temp)) != -1) {
-                outputStream.write(temp, 0, length);
+            while ((length = bufferedInputStream.read(temp)) != -1) {
+                bufferedOutputStream.write(temp, 0, length);
             }
-            outputStream.flush();
-            outputStream.close();
+            bufferedOutputStream.flush();
+            bufferedOutputStream.close();
+            bufferedInputStream.close();
             inputStream.close();
         } catch (IOException e) {
             e.printStackTrace();