w-converhp 2.0.53 → 2.0.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -80,7 +80,7 @@
80
80
 
81
81
  <dt class="tag-source">Source:</dt>
82
82
  <dd class="tag-source"><ul class="dummy"><li>
83
- <a href="WConverhpClient.mjs.html">WConverhpClient.mjs</a>, <a href="WConverhpClient.mjs.html#line99">line 99</a>
83
+ <a href="WConverhpClient.mjs.html">WConverhpClient.mjs</a>, <a href="WConverhpClient.mjs.html#line100">line 100</a>
84
84
  </li></ul></dd>
85
85
 
86
86
 
@@ -649,7 +649,7 @@
649
649
  <br class="clear">
650
650
 
651
651
  <footer>
652
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Thu May 29 2025 22:33:21 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
652
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Fri Jun 06 2025 10:10:29 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
653
653
  </footer>
654
654
 
655
655
  <script>prettyPrint();</script>
@@ -58,6 +58,7 @@ import isp0int from 'wsemi/src/isp0int.mjs'
58
58
  import isestr from 'wsemi/src/isestr.mjs'
59
59
  import isobj from 'wsemi/src/isobj.mjs'
60
60
  import iseobj from 'wsemi/src/iseobj.mjs'
61
+ import isbol from 'wsemi/src/isbol.mjs'
61
62
  import ispm from 'wsemi/src/ispm.mjs'
62
63
  import cint from 'wsemi/src/cint.mjs'
63
64
  import dig from 'wsemi/src/dig.mjs'
@@ -379,12 +380,22 @@ function WConverhpClient(opt) {
379
380
  // console.log('dd', dd)
380
381
 
381
382
  //rt
382
- let rt = 'blob'
383
+ let rt = null
383
384
  if (env === 'nodejs') {
384
- rt = 'arraybuffer' //nodejs下沒有blob, 只能設定'json', 'arraybuffer', 'document', 'json', 'text', 'stream'
385
385
  if (type === 'download') {
386
386
  rt = 'stream' //nodejs download模式採用stream接收
387
387
  }
388
+ else {
389
+ rt = 'arraybuffer' //nodejs下沒有blob, 只能設定'json', 'arraybuffer', 'document', 'json', 'text', 'stream'
390
+ }
391
+ }
392
+ else {
393
+ if (type === 'download') {
394
+ rt = 'blob' //瀏覽器使用blob下載
395
+ }
396
+ else {
397
+ rt = 'blob' //瀏覽器使用blob取得資料
398
+ }
388
399
  }
389
400
  // console.log('rt', rt)
390
401
 
@@ -438,25 +449,15 @@ function WConverhpClient(opt) {
438
449
 
439
450
  //streamRecv
440
451
  let streamRecv = get(res, 'data')
452
+ // console.log(env, 'streamRecv', streamRecv)
441
453
 
442
454
  if (env === 'browser') {
443
455
 
444
- //browser通過createObjectURL接收stream與a.href+a.click()接收檔案
445
- try {
446
- let url = URL.createObjectURL(streamRecv)
447
- let a = document.createElement('a')
448
- a.href = url
449
- a.download = filename // 動態設置檔名
450
- document.body.appendChild(a)
451
- a.click()
452
- a.remove()
453
- URL.revokeObjectURL(url)
454
- pm.resolve(filename)
455
- }
456
- catch (err) {
457
- console.log(err)
458
- pm.reject(err)
459
- }
456
+ //browser通過axios使用blob接收時會自動把串流接收並組合成blob, 此時streamRecv已是blob
457
+ pm.resolve({
458
+ filename,
459
+ bb: streamRecv,
460
+ })
460
461
 
461
462
  }
462
463
  else {
@@ -712,7 +713,7 @@ function WConverhpClient(opt) {
712
713
  }
713
714
 
714
715
  //send
715
- let res = await send(type, bb, { dataType: 'blob', retry: retryMain, cbProgress }) //bbb
716
+ let res = await send(type, bb, { dataType: 'blob', retry: retryMain, cbProgress })
716
717
 
717
718
  return res
718
719
  }
@@ -799,7 +800,7 @@ function WConverhpClient(opt) {
799
800
 
800
801
  //send check-total-hash
801
802
  // console.log(`send check-total-hash...`)
802
- let resUpCkt = await send('upload-controller', { mode: 'check-total-hash', fileHash: fileTotalHash, filename: fileTotalName, fileSize: fileTotalSize }, { dataType: 'json', retry: retryUpload }) //bbb
803
+ let resUpCkt = await send('upload-controller', { mode: 'check-total-hash', fileHash: fileTotalHash, filename: fileTotalName, fileSize: fileTotalSize }, { dataType: 'json', retry: retryUpload })
803
804
  // console.log('resUpCkt', resUpCkt)
804
805
  // resUpCkt {
805
806
  // path: 'uploadTemp\\2429b7ef08ce6ba9',
@@ -868,7 +869,7 @@ function WConverhpClient(opt) {
868
869
 
869
870
  //send check-slices-hash
870
871
  // console.log(`send check-slices-hash...`)
871
- let resUpCks = await send('upload-controller', { mode: 'check-slices-hash', fileHash: fileTotalHash, fileSliceHashs }, { dataType: 'json', retry: retryUpload }) //bbb
872
+ let resUpCks = await send('upload-controller', { mode: 'check-slices-hash', fileHash: fileTotalHash, fileSliceHashs }, { dataType: 'json', retry: retryUpload })
872
873
  // console.log('resUpCks', resUpCks)
873
874
  // resUpCks {
874
875
  // slks: [
@@ -927,7 +928,7 @@ function WConverhpClient(opt) {
927
928
  // if (dir === 'upload' &amp;&amp; perc === 100) {
928
929
  // }
929
930
  },
930
- retry: retryUpload, //bbb
931
+ retry: retryUpload,
931
932
  })
932
933
  // console.log('resSl', resSl)
933
934
 
@@ -938,7 +939,7 @@ function WConverhpClient(opt) {
938
939
 
939
940
  //send merge-slices-push
940
941
  // console.log(`send merge-slices-push...`)
941
- let resUpMgp = await send('upload-controller', { mode: 'merge-slices-push', fileHash: fileTotalHash, chunkTotal }, { dataType: 'json', retry: retryUpload }) //bbb
942
+ let resUpMgp = await send('upload-controller', { mode: 'merge-slices-push', fileHash: fileTotalHash, chunkTotal }, { dataType: 'json', retry: retryUpload })
942
943
  // console.log('resUpMgp', resUpMgp)
943
944
 
944
945
  //checkMerging
@@ -953,7 +954,7 @@ function WConverhpClient(opt) {
953
954
 
954
955
  //send merge-slices-get
955
956
  // console.log(`send merge-slices-get...`)
956
- send('upload-controller', { mode: 'merge-slices-get', fileHash: fileTotalHash, filename: fileTotalName, queueId }, { dataType: 'json', retry: retryUpload }) //bbb
957
+ send('upload-controller', { mode: 'merge-slices-get', fileHash: fileTotalHash, filename: fileTotalName, queueId }, { dataType: 'json', retry: retryUpload })
957
958
  .then((res) => {
958
959
  // console.log('res', res)
959
960
  // res => {
@@ -1087,7 +1088,7 @@ function WConverhpClient(opt) {
1087
1088
 
1088
1089
  //send download
1089
1090
  let msg = { fileId }
1090
- let resMg = await send('download', msg, { ...opt, dataType: 'json', retry: retryDownload, cbProgress }) //bbb
1091
+ let resMg = await send('download', msg, { ...opt, dataType: 'json', retry: retryDownload, cbProgress })
1091
1092
  // console.log('resMg', resMg)
1092
1093
 
1093
1094
  return resMg
@@ -1097,37 +1098,59 @@ function WConverhpClient(opt) {
1097
1098
  let downloadBrowser = async(fileId, cbProgress, opt = {}) => {
1098
1099
  //交由瀏覽器下載與管理故無法監聽進度, 不使用cbProgress
1099
1100
 
1100
- //token
1101
- let token = getToken()
1102
- if (ispm(token)) {
1103
- token = await token
1101
+ //downloadByManager
1102
+ let downloadByManager = get(opt, 'downloadByManager')
1103
+ if (!isbol(downloadByManager)) {
1104
+ downloadByManager = true
1104
1105
  }
1105
- // console.log('token', token)
1106
+ // console.log('downloadByManager', downloadByManager)
1106
1107
 
1107
- //send download-get-filename
1108
- let msg = { fileId }
1109
- let resMg = await send('download-get-filename', msg, { dataType: 'json', retry: retryDownload }) //bbb
1110
- // console.log('resMg', resMg)
1108
+ if (downloadByManager) {
1109
+ //由瀏覽器的下載管理器下載, 使用get+stream
1110
+
1111
+ //token
1112
+ let token = getToken()
1113
+ if (ispm(token)) {
1114
+ token = await token
1115
+ }
1116
+ // console.log('token', token)
1111
1117
 
1112
- //filename
1113
- let filename = get(resMg, 'filename', '')
1114
- // console.log('filename', filename)
1118
+ //send download-get-filename
1119
+ let msg = { fileId }
1120
+ let resMg = await send('download-get-filename', msg, { dataType: 'json', retry: retryDownload })
1121
+ // console.log('resMg', resMg)
1115
1122
 
1116
- //urlUse
1117
- let urlUse = getUrlUse('download-get')
1118
- // console.log('urlUse', urlUse)
1123
+ //filename
1124
+ let filename = get(resMg, 'filename', '')
1125
+ // console.log('filename', filename)
1119
1126
 
1120
- //url
1121
- let url = `${urlUse}?fileId=${fileId}&amp;token=${token}`
1122
- // console.log('url', url)
1127
+ //urlUse
1128
+ let urlUse = getUrlUse('download-get')
1129
+ // console.log('urlUse', urlUse)
1123
1130
 
1124
- //透過a元素打url下載, 讓瀏覽器認定為直接下載模式, 由瀏覽器展示下載進度與排入正在下載清單
1125
- let a = document.createElement('a')
1126
- a.href = url
1127
- a.download = filename
1128
- a.click()
1131
+ //url
1132
+ let url = `${urlUse}?fileId=${fileId}&amp;token=${token}`
1133
+ // console.log('url', url)
1134
+
1135
+ //透過a元素打url下載, 讓瀏覽器認定為直接下載模式, 由瀏覽器展示下載進度與排入正在下載清單
1136
+ let a = document.createElement('a')
1137
+ a.href = url
1138
+ a.download = filename
1139
+ a.click()
1140
+
1141
+ return filename
1142
+ }
1143
+ else {
1144
+ //通過axios下載得到blob, 回傳檔案名稱與blob供後續處理
1145
+
1146
+ //send download
1147
+ let msg = { fileId }
1148
+ let resMg = await send('download', msg, { ...opt, dataType: 'json', retry: retryDownload, cbProgress })
1149
+ // console.log('resMg', resMg)
1150
+
1151
+ return resMg
1152
+ }
1129
1153
 
1130
- return filename
1131
1154
  }
1132
1155
 
1133
1156
  //download
@@ -1164,7 +1187,7 @@ export default WConverhpClient
1164
1187
  <br class="clear">
1165
1188
 
1166
1189
  <footer>
1167
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Thu May 29 2025 22:33:21 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1190
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Fri Jun 06 2025 10:10:29 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1168
1191
  </footer>
1169
1192
 
1170
1193
  <script>prettyPrint();</script>
@@ -749,7 +749,7 @@
749
749
  <br class="clear">
750
750
 
751
751
  <footer>
752
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Thu May 29 2025 22:33:21 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
752
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Fri Jun 06 2025 10:10:29 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
753
753
  </footer>
754
754
 
755
755
  <script>prettyPrint();</script>
@@ -1485,7 +1485,7 @@ export default WConverhpServer
1485
1485
  <br class="clear">
1486
1486
 
1487
1487
  <footer>
1488
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Thu May 29 2025 22:33:21 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1488
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Fri Jun 06 2025 10:10:29 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1489
1489
  </footer>
1490
1490
 
1491
1491
  <script>prettyPrint();</script>
package/docs/index.html CHANGED
@@ -71,7 +71,7 @@
71
71
  <br class="clear">
72
72
 
73
73
  <footer>
74
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Thu May 29 2025 22:33:21 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
74
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Fri Jun 06 2025 10:10:29 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
75
75
  </footer>
76
76
 
77
77
  <script>prettyPrint();</script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "w-converhp",
3
- "version": "2.0.53",
3
+ "version": "2.0.55",
4
4
  "main": "dist/w-converhp-server.umd.js",
5
5
  "dependencies": {
6
6
  "@hapi/hapi": "^21.4.0",
@@ -10,7 +10,7 @@
10
10
  "wsemi": "^1.7.92"
11
11
  },
12
12
  "devDependencies": {
13
- "form-data": "^4.0.2",
13
+ "form-data": "^4.0.3",
14
14
  "w-package-tools": "^1.1.2"
15
15
  },
16
16
  "scripts": {
@@ -11,6 +11,7 @@ import isp0int from 'wsemi/src/isp0int.mjs'
11
11
  import isestr from 'wsemi/src/isestr.mjs'
12
12
  import isobj from 'wsemi/src/isobj.mjs'
13
13
  import iseobj from 'wsemi/src/iseobj.mjs'
14
+ import isbol from 'wsemi/src/isbol.mjs'
14
15
  import ispm from 'wsemi/src/ispm.mjs'
15
16
  import cint from 'wsemi/src/cint.mjs'
16
17
  import dig from 'wsemi/src/dig.mjs'
@@ -332,12 +333,22 @@ function WConverhpClient(opt) {
332
333
  // console.log('dd', dd)
333
334
 
334
335
  //rt
335
- let rt = 'blob'
336
+ let rt = null
336
337
  if (env === 'nodejs') {
337
- rt = 'arraybuffer' //nodejs下沒有blob, 只能設定'json', 'arraybuffer', 'document', 'json', 'text', 'stream'
338
338
  if (type === 'download') {
339
339
  rt = 'stream' //nodejs download模式採用stream接收
340
340
  }
341
+ else {
342
+ rt = 'arraybuffer' //nodejs下沒有blob, 只能設定'json', 'arraybuffer', 'document', 'json', 'text', 'stream'
343
+ }
344
+ }
345
+ else {
346
+ if (type === 'download') {
347
+ rt = 'blob' //瀏覽器使用blob下載
348
+ }
349
+ else {
350
+ rt = 'blob' //瀏覽器使用blob取得資料
351
+ }
341
352
  }
342
353
  // console.log('rt', rt)
343
354
 
@@ -391,25 +402,15 @@ function WConverhpClient(opt) {
391
402
 
392
403
  //streamRecv
393
404
  let streamRecv = get(res, 'data')
405
+ // console.log(env, 'streamRecv', streamRecv)
394
406
 
395
407
  if (env === 'browser') {
396
408
 
397
- //browser通過createObjectURL接收stream與a.href+a.click()接收檔案
398
- try {
399
- let url = URL.createObjectURL(streamRecv)
400
- let a = document.createElement('a')
401
- a.href = url
402
- a.download = filename // 動態設置檔名
403
- document.body.appendChild(a)
404
- a.click()
405
- a.remove()
406
- URL.revokeObjectURL(url)
407
- pm.resolve(filename)
408
- }
409
- catch (err) {
410
- console.log(err)
411
- pm.reject(err)
412
- }
409
+ //browser通過axios使用blob接收時會自動把串流接收並組合成blob, 此時streamRecv已是blob
410
+ pm.resolve({
411
+ filename,
412
+ bb: streamRecv,
413
+ })
413
414
 
414
415
  }
415
416
  else {
@@ -665,7 +666,7 @@ function WConverhpClient(opt) {
665
666
  }
666
667
 
667
668
  //send
668
- let res = await send(type, bb, { dataType: 'blob', retry: retryMain, cbProgress }) //bbb
669
+ let res = await send(type, bb, { dataType: 'blob', retry: retryMain, cbProgress })
669
670
 
670
671
  return res
671
672
  }
@@ -752,7 +753,7 @@ function WConverhpClient(opt) {
752
753
 
753
754
  //send check-total-hash
754
755
  // console.log(`send check-total-hash...`)
755
- let resUpCkt = await send('upload-controller', { mode: 'check-total-hash', fileHash: fileTotalHash, filename: fileTotalName, fileSize: fileTotalSize }, { dataType: 'json', retry: retryUpload }) //bbb
756
+ let resUpCkt = await send('upload-controller', { mode: 'check-total-hash', fileHash: fileTotalHash, filename: fileTotalName, fileSize: fileTotalSize }, { dataType: 'json', retry: retryUpload })
756
757
  // console.log('resUpCkt', resUpCkt)
757
758
  // resUpCkt {
758
759
  // path: 'uploadTemp\\2429b7ef08ce6ba9',
@@ -821,7 +822,7 @@ function WConverhpClient(opt) {
821
822
 
822
823
  //send check-slices-hash
823
824
  // console.log(`send check-slices-hash...`)
824
- let resUpCks = await send('upload-controller', { mode: 'check-slices-hash', fileHash: fileTotalHash, fileSliceHashs }, { dataType: 'json', retry: retryUpload }) //bbb
825
+ let resUpCks = await send('upload-controller', { mode: 'check-slices-hash', fileHash: fileTotalHash, fileSliceHashs }, { dataType: 'json', retry: retryUpload })
825
826
  // console.log('resUpCks', resUpCks)
826
827
  // resUpCks {
827
828
  // slks: [
@@ -880,7 +881,7 @@ function WConverhpClient(opt) {
880
881
  // if (dir === 'upload' && perc === 100) {
881
882
  // }
882
883
  },
883
- retry: retryUpload, //bbb
884
+ retry: retryUpload,
884
885
  })
885
886
  // console.log('resSl', resSl)
886
887
 
@@ -891,7 +892,7 @@ function WConverhpClient(opt) {
891
892
 
892
893
  //send merge-slices-push
893
894
  // console.log(`send merge-slices-push...`)
894
- let resUpMgp = await send('upload-controller', { mode: 'merge-slices-push', fileHash: fileTotalHash, chunkTotal }, { dataType: 'json', retry: retryUpload }) //bbb
895
+ let resUpMgp = await send('upload-controller', { mode: 'merge-slices-push', fileHash: fileTotalHash, chunkTotal }, { dataType: 'json', retry: retryUpload })
895
896
  // console.log('resUpMgp', resUpMgp)
896
897
 
897
898
  //checkMerging
@@ -906,7 +907,7 @@ function WConverhpClient(opt) {
906
907
 
907
908
  //send merge-slices-get
908
909
  // console.log(`send merge-slices-get...`)
909
- send('upload-controller', { mode: 'merge-slices-get', fileHash: fileTotalHash, filename: fileTotalName, queueId }, { dataType: 'json', retry: retryUpload }) //bbb
910
+ send('upload-controller', { mode: 'merge-slices-get', fileHash: fileTotalHash, filename: fileTotalName, queueId }, { dataType: 'json', retry: retryUpload })
910
911
  .then((res) => {
911
912
  // console.log('res', res)
912
913
  // res => {
@@ -1040,7 +1041,7 @@ function WConverhpClient(opt) {
1040
1041
 
1041
1042
  //send download
1042
1043
  let msg = { fileId }
1043
- let resMg = await send('download', msg, { ...opt, dataType: 'json', retry: retryDownload, cbProgress }) //bbb
1044
+ let resMg = await send('download', msg, { ...opt, dataType: 'json', retry: retryDownload, cbProgress })
1044
1045
  // console.log('resMg', resMg)
1045
1046
 
1046
1047
  return resMg
@@ -1050,37 +1051,59 @@ function WConverhpClient(opt) {
1050
1051
  let downloadBrowser = async(fileId, cbProgress, opt = {}) => {
1051
1052
  //交由瀏覽器下載與管理故無法監聽進度, 不使用cbProgress
1052
1053
 
1053
- //token
1054
- let token = getToken()
1055
- if (ispm(token)) {
1056
- token = await token
1054
+ //downloadByManager
1055
+ let downloadByManager = get(opt, 'downloadByManager')
1056
+ if (!isbol(downloadByManager)) {
1057
+ downloadByManager = true
1057
1058
  }
1058
- // console.log('token', token)
1059
+ // console.log('downloadByManager', downloadByManager)
1059
1060
 
1060
- //send download-get-filename
1061
- let msg = { fileId }
1062
- let resMg = await send('download-get-filename', msg, { dataType: 'json', retry: retryDownload }) //bbb
1063
- // console.log('resMg', resMg)
1061
+ if (downloadByManager) {
1062
+ //由瀏覽器的下載管理器下載, 使用get+stream
1063
+
1064
+ //token
1065
+ let token = getToken()
1066
+ if (ispm(token)) {
1067
+ token = await token
1068
+ }
1069
+ // console.log('token', token)
1064
1070
 
1065
- //filename
1066
- let filename = get(resMg, 'filename', '')
1067
- // console.log('filename', filename)
1071
+ //send download-get-filename
1072
+ let msg = { fileId }
1073
+ let resMg = await send('download-get-filename', msg, { dataType: 'json', retry: retryDownload })
1074
+ // console.log('resMg', resMg)
1068
1075
 
1069
- //urlUse
1070
- let urlUse = getUrlUse('download-get')
1071
- // console.log('urlUse', urlUse)
1076
+ //filename
1077
+ let filename = get(resMg, 'filename', '')
1078
+ // console.log('filename', filename)
1072
1079
 
1073
- //url
1074
- let url = `${urlUse}?fileId=${fileId}&token=${token}`
1075
- // console.log('url', url)
1080
+ //urlUse
1081
+ let urlUse = getUrlUse('download-get')
1082
+ // console.log('urlUse', urlUse)
1076
1083
 
1077
- //透過a元素打url下載, 讓瀏覽器認定為直接下載模式, 由瀏覽器展示下載進度與排入正在下載清單
1078
- let a = document.createElement('a')
1079
- a.href = url
1080
- a.download = filename
1081
- a.click()
1084
+ //url
1085
+ let url = `${urlUse}?fileId=${fileId}&token=${token}`
1086
+ // console.log('url', url)
1087
+
1088
+ //透過a元素打url下載, 讓瀏覽器認定為直接下載模式, 由瀏覽器展示下載進度與排入正在下載清單
1089
+ let a = document.createElement('a')
1090
+ a.href = url
1091
+ a.download = filename
1092
+ a.click()
1093
+
1094
+ return filename
1095
+ }
1096
+ else {
1097
+ //通過axios下載得到blob, 回傳檔案名稱與blob供後續處理
1098
+
1099
+ //send download
1100
+ let msg = { fileId }
1101
+ let resMg = await send('download', msg, { ...opt, dataType: 'json', retry: retryDownload, cbProgress })
1102
+ // console.log('resMg', resMg)
1103
+
1104
+ return resMg
1105
+ }
1082
1106
 
1083
- return filename
1084
1107
  }
1085
1108
 
1086
1109
  //download
package/web.html CHANGED
@@ -24,6 +24,8 @@
24
24
 
25
25
  <script>
26
26
 
27
+ //本機測試時須使用網址測試: http://localhost:8080/web.html, 否則前端下載無法使用變數download指定檔名
28
+
27
29
  let opt = {
28
30
  // FormData, //使用瀏覽器內建FormData, 非後端不須另外提供
29
31
  url: 'http://localhost:8080',
@@ -152,13 +154,21 @@
152
154
  function downloadLargeFile(){
153
155
  let core = async()=>{
154
156
 
155
- await wo.download('id-for-file',
157
+ let downloadByManager = !document.getElementById('returnFile').checked
158
+ // console.log('downloadByManager',downloadByManager)
159
+
160
+ await wo.download(
161
+ 'id-for-file',
156
162
  function ({ prog, p, m }) {
157
163
  // console.log('client web: download: prog', prog, p, m)
158
164
  if (m === 'download') {
159
165
  console.log('client web: download: prog', prog)
160
166
  }
161
- })
167
+ },
168
+ {
169
+ downloadByManager
170
+ },
171
+ )
162
172
  .then(function(res) {
163
173
  console.log('client web: download: then', res)
164
174
  })
@@ -197,7 +207,12 @@
197
207
  <div style="padding:10px;">
198
208
 
199
209
  <button onclick="downloadLargeFile()">download large file</button>
200
-
210
+
211
+ <label>
212
+ <input type="checkbox" id="returnFile">
213
+ return file
214
+ </label>
215
+
201
216
  </div>
202
217
 
203
218
  </body>