Browse Source

解决下载图片问题

natasha 1 week ago
parent
commit
f3bcef655b
2 changed files with 86 additions and 31 deletions
  1. 85 30
      src/views/bookShelf/articleDetail.vue
  2. 1 1
      src/views/bookShelf/components/PrintModel.vue

+ 85 - 30
src/views/bookShelf/articleDetail.vue

@@ -1407,37 +1407,92 @@ export default {
                             .substring(items.indexOf("height: ") + 8)
                             .indexOf(";")
                         : -1; // height所在索引
-                    let imgobj = {
-                      src: items.substring(
-                        items.indexOf('src="') + 5,
-                        indexS + 5
-                      ),
-                      width:
-                        items.indexOf('width="') > -1
-                          ? items.substring(
-                              items.indexOf('width="') + 7,
-                              items.indexOf('width="') + indexW + 7
-                            )
-                          : items.indexOf("width: ") > -1
-                          ? items.substring(
-                              items.indexOf("width: ") + 7,
-                              items.indexOf("width: ") + indexW + 7
-                            )
-                          : null,
-                      height:
-                        items.indexOf('height="') > -1
-                          ? items.substring(
-                              items.indexOf('height="') + 8,
-                              items.indexOf('height="') + indexH + 8
-                            )
-                          : items.indexOf("height: ") > -1
-                          ? items.substring(
-                              items.indexOf("height: ") + 8,
-                              items.indexOf('height="') + indexH + 8
-                            )
-                          : null,
+                    let oldSrc = items.substring(
+                      items.indexOf('src="') + 5,
+                      indexS + 5
+                    );
+                    let MethodNames =
+                      "/FileServer/FilePackManager/GetFileBytesBase64TextByURL";
+                    let datas = {
+                      url: oldSrc,
                     };
-                    imgArr.push(imgobj);
+                    getLogin(MethodNames, datas)
+                      .then((res) => {
+                        if (res.status === 1) {
+                          let imgobj = {
+                            src: oldSrc,
+                            newSrc: "data:image/jpeg;base64," + res.base64_text,
+                            width:
+                              items.indexOf('width="') > -1
+                                ? items.substring(
+                                    items.indexOf('width="') + 7,
+                                    items.indexOf('width="') + indexW + 7
+                                  )
+                                : items.indexOf("width: ") > -1
+                                ? items.substring(
+                                    items.indexOf("width: ") + 7,
+                                    items.indexOf("width: ") + indexW + 7
+                                  )
+                                : null,
+                            height:
+                              items.indexOf('height="') > -1
+                                ? items.substring(
+                                    items.indexOf('height="') + 8,
+                                    items.indexOf('height="') + indexH + 8
+                                  )
+                                : items.indexOf("height: ") > -1
+                                ? items.substring(
+                                    items.indexOf("height: ") + 8,
+                                    items.indexOf('height="') + indexH + 8
+                                  )
+                                : null,
+                          };
+                          imgArr.push(imgobj);
+                          let newItems = items.replace(
+                            oldSrc,
+                            "data:image/jpeg;base64," + res.base64_text
+                          );
+                          this.articleInfo.art_content =
+                            this.articleInfo.art_content.replace(
+                              oldSrc,
+                              "data:image/jpeg;base64," + res.base64_text
+                            );
+                          items = newItems;
+                        }
+                      })
+                      .catch(() => {
+                        let imgobj = {
+                          src: items.substring(
+                            items.indexOf('src="') + 5,
+                            indexS + 5
+                          ),
+                          width:
+                            items.indexOf('width="') > -1
+                              ? items.substring(
+                                  items.indexOf('width="') + 7,
+                                  items.indexOf('width="') + indexW + 7
+                                )
+                              : items.indexOf("width: ") > -1
+                              ? items.substring(
+                                  items.indexOf("width: ") + 7,
+                                  items.indexOf("width: ") + indexW + 7
+                                )
+                              : null,
+                          height:
+                            items.indexOf('height="') > -1
+                              ? items.substring(
+                                  items.indexOf('height="') + 8,
+                                  items.indexOf('height="') + indexH + 8
+                                )
+                              : items.indexOf("height: ") > -1
+                              ? items.substring(
+                                  items.indexOf("height: ") + 8,
+                                  items.indexOf('height="') + indexH + 8
+                                )
+                              : null,
+                        };
+                        imgArr.push(imgobj);
+                      });
                   }
                 });
                 this.articleImg[pno] = imgArr;

+ 1 - 1
src/views/bookShelf/components/PrintModel.vue

@@ -188,7 +188,7 @@
                         width: itemI.width,
                         height: itemI.height,
                       }"
-                      :src="itemI.src"
+                      :src="itemI.newSrc ? itemI.newSrc : itemI.src"
                     />
                     <!-- <el-image
                       :src="itemI.src"