hurugang 2 лет назад
Родитель
Сommit
a5e107285e

+ 3 - 1
src/main/java/cn/hnthyy/thmz/controller/mz/FileController.java

@@ -23,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.UnsupportedEncodingException;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -46,7 +47,7 @@ public class FileController {
      */
     @UserLoginToken
     @RequestMapping(value = "/downloadByName", method = RequestMethod.GET)
-    public ResponseEntity<?> downloadByName(@RequestParam("name") String name) {
+    public ResponseEntity<?> downloadByName(@RequestParam("name") String name, HttpServletResponse response) {
         FileUpload fileUpload = fileUploadService.queryByName(name);
         if (fileUpload == null) {
             return new ResponseEntity<>("{文件没有找到}", HttpStatus.NOT_FOUND);
@@ -61,6 +62,7 @@ public class FileController {
             return new ResponseEntity<>("{}", HttpStatus.INTERNAL_SERVER_ERROR);
         }
         headers.setContentType(new MediaType(primaryType, subType));
+        response.setCharacterEncoding("UTF-8");
         return new ResponseEntity<>(fileUpload.getFile(), headers, HttpStatus.OK);
     }
 

+ 2 - 2
src/main/resources/application-dev.yml

@@ -21,9 +21,9 @@ spring:
   servlet:
     multipart:
       #单个文件大小
-      max-file-size: 20MB
+      max-file-size: 200MB
       #单次请求总文件大小
-      max-request-size: 100MB
+      max-request-size: 1000MB
   datasource:
     lis:
       jdbc-url: "jdbc:sqlserver://172.16.32.178:1433;databaseName=eLimsCore"

+ 2 - 2
src/main/resources/application-prod.yml

@@ -21,9 +21,9 @@ spring:
   servlet:
     multipart:
       #单个文件大小
-      max-file-size: 20MB
+      max-file-size: 200MB
       #单次请求总文件大小
-      max-request-size: 100MB
+      max-request-size: 1000MB
   datasource:
     lis:
       jdbc-url: "jdbc:sqlserver://172.16.32.178:1433;databaseName=eLimsCore"

+ 61 - 1
src/main/resources/static/js/common/file.js

@@ -22,4 +22,64 @@ function imgFun(url, imgs) {
         }
     }
     xhr.send();
-}
+}
+
+
+
+
+/**
+ * 下载文件
+ * @param url
+ * @param imgs
+ */
+function downFile(url,id) {
+    var windowUrl = window.URL || window.webkitURL;//处理浏览器兼容性
+    var xhr = new XMLHttpRequest();
+    xhr.open("GET", url, true);
+    xhr.responseType = "blob";
+    xhr.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
+    xhr.onload = function () {
+        //console.log(this);
+        if (this.status == 200) {
+            var blob = this.response;
+            $("#"+id).load(function (e) {
+                windowUrl.revokeObjectURL($("#"+id).href);
+            }).attr("href", windowUrl.createObjectURL(blob));
+        }
+    }
+    xhr.send();
+}
+
+
+/**
+ * 下载文件
+ * @param url
+ * @param imgs
+ */
+function downFile(url) {
+    var xhr = new XMLHttpRequest();
+    xhr.open("GET", url, true);
+//设置请求头
+    xhr.setRequestHeader(window.AUTH_HEADER, window.localStorage.getItem(window.TOKEN_NAME));
+//设置响应类型
+    xhr.responseType = 'blob';
+    xhr.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
+    xhr.onload = function (e) {
+        if (this.status == 200) {
+            var filename = xhr.getResponseHeader("content-disposition").slice(21);
+            var blob = this.response;
+            var a = document.createElement('a');
+            var url = URL.createObjectURL(blob);
+            a.href = url;
+            a.download = filename;
+            document.body.appendChild(a);
+            a.click();
+            window.URL.revokeObjectURL(url);
+        }
+    };
+    xhr.send();
+}
+
+
+
+

+ 14 - 49
src/main/resources/templates/menu.html

@@ -152,7 +152,6 @@
                                 </li>
                             </ul>
                         </li>
-
                         <li role="presentation" class="dropdown">
                             <a href="javascript:;" class="dropdown-toggle info-number" data-toggle="dropdown"
                                aria-expanded="false">
@@ -160,54 +159,19 @@
                                 <span class="badge bg-green" id="noticeNum"></span>
                             </a>
                             <ul id="noticeMenu" class="dropdown-menu list-unstyled msg_list" role="menu">
-                                <!--<li>-->
-                                    <!--<a>-->
-                                        <!--<span class="image"><img id="headImage1" src="" alt="Profile Image"/></span>-->
-                                        <!--<span>-->
-                                          <!--<span>系统通知</span>-->
-                                          <!--<span class="time">3分钟前</span>-->
-                                        <!--</span>-->
-                                        <!--<span class="message">对于电影制作人来说,电影节曾经是生死攸关的时刻。他们在那里……</span>-->
-                                    <!--</a>-->
-                                <!--</li>-->
-                                <!--<li>-->
-                                    <!--<a>-->
-                                        <!--<span class="image"><img id="headImage2" src="" alt="Profile Image"/></span>-->
-                                        <!--<span>-->
-                                          <!--<span>系统通知</span>-->
-                                          <!--<span class="time">3分钟前</span>-->
-                                        <!--</span>-->
-                                        <!--<span class="message">对于电影制作人来说,电影节曾经是生死攸关的时刻。他们在那里……</span>-->
-                                    <!--</a>-->
-                                <!--</li>-->
-                                <!--<li>-->
-                                    <!--<a>-->
-                                        <!--<span class="image"><img id="headImage3" src="" alt="Profile Image"/></span>-->
-                                        <!--<span>-->
-                                          <!--<span>系统通知</span>-->
-                                          <!--<span class="time">3分钟前</span>-->
-                                        <!--</span>-->
-                                        <!--<span class="message">对于电影制作人来说,电影节曾经是生死攸关的时刻。他们在那里……</span>-->
-                                    <!--</a>-->
-                                <!--</li>-->
-                                <!--<li>-->
-                                    <!--<a>-->
-                                        <!--<span class="image"><img id="headImage4" src="" alt="Profile Image"/></span>-->
-                                        <!--<span>-->
-                                          <!--<span>系统通知</span>-->
-                                          <!--<span class="time">3分钟前</span>-->
-                                        <!--</span>-->
-                                        <!--<span class="message">对于电影制作人来说,电影节曾经是生死攸关的时刻。他们在那里……</span>-->
-                                    <!--</a>-->
-                                <!--</li>-->
-                                <!--<li>-->
-                                    <!--<div class="text-center">-->
-                                        <!--<a>-->
-                                            <!--<strong>查看所有通知</strong>-->
-                                            <!--<i class="fa fa-angle-right"></i>-->
-                                        <!--</a>-->
-                                    <!--</div>-->
-                                <!--</li>-->
+                            </ul>
+                        </li>
+                        <li class="dropdown">
+                            <a href="javascript:;" class="dropdown-toggle info-number" data-toggle="dropdown"
+                               aria-expanded="false">
+                                <i class="fa fa-cloud-download"></i>
+                            </a>
+                            <ul id="fileMenu" class="dropdown-menu dropdown-usermenu" role="menu">
+                                <li><a href="javascript:;" onclick="downFile('/thmz/downloadByName?name=CLodop_Setup_for_Win32NT.zip')">打印控件驱动</a></li>
+                                <li><a href="javascript:;" onclick="downFile('/thmz/downloadByName?name=SFZ100.zip')">身份证读卡器驱动</a></li>
+                                <li><a href="javascript:;" onclick="downFile('/thmz/downloadByName?name=readCardDrive.msi')">医保读卡插件安装包</a></li>
+                                <li><a href="javascript:;" onclick="downFile('/thmz/downloadByName?name=NET Framework 4.6.1.exe')">.Net Framework</a></li>
+                                <li><a href="javascript:;" onclick="downFile('/thmz/downloadByName?name=chrome90.exe')">高版本Chrome浏览器</a></li>
                             </ul>
                         </li>
                     </ul>
@@ -257,6 +221,7 @@
 <script src="/thmz/js/common/math.js"></script>
 <!-- Custom Theme Scripts -->
 <script src="/thmz/js/dependent/custom-from-min.js"></script>
+<script src="/thmz/js/common/file.js"></script>
 <script src="/thmz/js/menu.js"></script>
 <script src="/thmz/js/dependent/fcode.js"></script>
 <script src="/thmz/js/common/message.js"></script>