Browse Source

下载文件

shiqian 3 years ago
parent
commit
e8fcb1205c

+ 10 - 2
boman-api/boman-domain/src/main/java/com.boman.domain/dto/FileDto.java

@@ -1,8 +1,6 @@
 package com.boman.domain.dto;
 
 
-import lombok.Data;
-
 /**
  * @author shiqian
  * @date 2021年07月08日 11:09
@@ -14,6 +12,8 @@ public class FileDto {
 
     private Boolean preview;
 
+    private String filename;
+
     public String getAbsolutePath() {
         return absolutePath;
     }
@@ -29,4 +29,12 @@ public class FileDto {
     public void setPreview(Boolean preview) {
         this.preview = preview;
     }
+
+    public String getFilename() {
+        return filename;
+    }
+
+    public void setFilename(String filename) {
+        this.filename = filename;
+    }
 }

+ 8 - 5
boman-modules/boman-file/src/main/java/com/boman/file/service/LocalSysFileServiceImpl.java

@@ -3,12 +3,12 @@ package com.boman.file.service;
 import com.alibaba.fastjson.JSONObject;
 import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.common.core.utils.poi.ExcelUtil;
-import com.boman.domain.dto.*;
 import com.boman.common.redis.RedisKey;
 import com.boman.common.redis.service.RedisService;
 import com.boman.domain.GenTable;
 import com.boman.domain.GenTableColumn;
 import com.boman.domain.constant.MaskConstant;
+import com.boman.domain.dto.*;
 import com.boman.file.utils.FileUploadUtils;
 import com.boman.web.core.api.RemoteObjService;
 import com.google.common.collect.Lists;
@@ -26,6 +26,8 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.net.URL;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 
 import static com.boman.common.core.utils.obj.ObjectUtils.map;
@@ -199,16 +201,17 @@ public class LocalSysFileServiceImpl implements ISysFileService
         }
 
         response.reset();
+        response.setCharacterEncoding("utf-8");
+        String filename = URLEncoder.encode(dto.getFilename(), "UTF-8");
         if (BooleanUtils.isTrue(dto.getPreview())) {
             // 查看
             URL url = new URL("file:///" + filePath);
-            String contentType = url.openConnection().getContentType();
-            response.setContentType(contentType);
-            response.setHeader("Content-Disposition", "inline;filename=test.pdf");
+            response.setContentType(url.openConnection().getContentType() + ";charset=utf-8");
+            response.setHeader("content-disposition", "attachment;filename=" + filename);
         } else {
             // 下载
             response.setContentType("application/x-msdownload");
-            response.setHeader("Content-Disposition", "attachment;filename=test.pdf");
+            response.setHeader("Content-Disposition", "attachment;filename=" + filename);
         }
 
         int len;

+ 14 - 2
boman-report/src/main/resources/templates/jmreport/desreport/template/components/data_source_setting.ftl

@@ -132,8 +132,8 @@
                                     <form-item prop="dbDynSql" label="报表选择" v-if="sqlForm.dbType == 0">
                                        <#-- <i-input v-model="sqlForm.dbDynSql"  @on-blur="dbDynSqlBlur"  type="textarea" :rows="4"  placeholder="请输入查询SQL" style="min-height: 120px;max-height: 620px;width:950px">
                                         </i-input>-->
-                                        <i-table style="padding-bottom: 10%" ref="dynamicTable" @on-select="selectTableField" @on-select-all="selectTableAll" @on-select-all-cancel="cancelTableAll"
-                                                 @on-select-cancel="cancelTableField" stripe :columns="genTable.columns" :data="genTable.data"></i-table>
+                                        <i-table style="padding-bottom: 10%"  ref="dynamicTable" @on-select="selectTableField" @on-select-all="selectTableAll" @on-select-all-cancel="cancelTableAll"
+                                                 highlight-row   @on-select-cancel="cancelTableField" stripe :columns="genTable.columns" :data="genTable.data"></i-table>
                                         <Page :total="dataCount" :current="pageCurrent" :page-size="pageSize" @on-change="changepage" @on-page-size-change="_nowPageSize"  show-total show-sizer show-elevator/>
                                     </form-item>
                                     <form-item prop="apiUrl" label="Api地址:" v-else-if="sqlForm.dbType == 1">
@@ -945,17 +945,28 @@
             },
             editById(dbId){
                 this.tabValue="1";
+
                 $http.get({url:api.loadDbData(dbId),success:(result)=>{
                         console.log('result=====',result);
                         let reportResult = result;
                         if(!reportResult){
                             return;
                         }
+                        console.log(34546,this.nowData)
                         //设置数据
                         this.sqlForm = reportResult.reportDb;
                         let bol = reportResult.reportDb.isPage;
                         let isList = reportResult.reportDb.isList;
                         this.tab1.data=reportResult.fieldList;
+                        // this.genTable.selectParamTables=[...this.genTable.selectParamTables, {"id":reportResult.reportDb.id,"tableName":reportResult.reportDb.dbCode,"tableComment":reportResult.reportDb.dbChName}];
+                        for (var i = 0 ; i < this.nowData.length; i++){
+                            console.log(this.nowData[i].id,67867)
+                            console.log(reportResult.reportDb.id,67868)
+                            if(this.nowData[i].id == reportResult.reportDb.id){
+                                console.log(this.nowData[i],678)
+                                this.nowData[i]._checked = true
+                            }
+                        }
                         if(this.tab1.data){
                             this.tab1.data.forEach((item,index)=>{
                                 item.tableIndex = index+1;
@@ -1986,6 +1997,7 @@
                             return;
                         }
                         this.nowData = res.data.result;
+                        console.log(this.nowData,876)
                         this.dataCount = res.data.result.length;
                         this.changepage(1);
                     }