|
@@ -215,7 +215,6 @@ $('.downloadVideo').on('click', function(e) {
|
|
|
const button = $(this);
|
|
|
const videoUrl = button.attr('videoUrl');
|
|
|
|
|
|
- // 开启全局遮罩层(网页3的遮罩思路)
|
|
|
const loading = Dcat.loading({
|
|
|
shade: 'rgba(0,0,0,0.5)',
|
|
|
zIndex: 999999
|
|
@@ -233,11 +232,20 @@ $('.downloadVideo').on('click', function(e) {
|
|
|
const reader = response.body.getReader();
|
|
|
const chunks = [];
|
|
|
|
|
|
- // 流式处理核心逻辑(网页5的异步处理思想)
|
|
|
const processChunk = ({ done, value }) => {
|
|
|
if (done) {
|
|
|
const blob = new Blob(chunks);
|
|
|
- Dcat.handleFileDownload(blob, videoUrl.split('/').pop());
|
|
|
+ const filename = videoUrl.split('/').pop() || 'video.mp4';
|
|
|
+
|
|
|
+ // 标准文件下载实现[7](@ref)
|
|
|
+ const link = document.createElement('a');
|
|
|
+ link.href = URL.createObjectURL(blob);
|
|
|
+ link.download = filename;
|
|
|
+ document.body.appendChild(link);
|
|
|
+ link.click();
|
|
|
+ document.body.removeChild(link);
|
|
|
+ URL.revokeObjectURL(link.href);
|
|
|
+
|
|
|
Dcat.loading(false);
|
|
|
return;
|
|
|
}
|
|
@@ -249,7 +257,7 @@ $('.downloadVideo').on('click', function(e) {
|
|
|
return reader.read().then(processChunk);
|
|
|
}).catch(error => {
|
|
|
Dcat.loading(false);
|
|
|
- Dcat.error(`下载失败: \${error.message}`); // 网页7的错误处理思路
|
|
|
+ Dcat.error(`下载失败:\${error.message}`);
|
|
|
console.error('Download Error:', error);
|
|
|
});
|
|
|
});
|