Commit c8ea7868 authored by 夏敏伟's avatar 夏敏伟
parents 9c23457e 3078b2e4
......@@ -7181,6 +7181,11 @@
"source-map": "^0.6.0"
}
},
"spark-md5": {
"version": "3.0.2",
"resolved": "https://registry.npmmirror.com/spark-md5/-/spark-md5-3.0.2.tgz",
"integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw=="
},
"spdx-correct": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
......
......@@ -7,7 +7,6 @@ import ElementUI from 'element-ui'
import './element-variables.scss'
import "echarts-wordcloud/dist/echarts-wordcloud";
import "echarts-wordcloud/dist/echarts-wordcloud.min";
Vue.use(ElementUI)
new Vue({
router,
......
import SparkMD5 from 'spark-md5'
// md5值计算
var fileMd5Sum = (file) => {
console.log(new Date().toDateString())
return new Promise((resolve, reject) => {
const fileReader = new FileReader();
fileReader.onloadend = evt => {
const spark = new SparkMD5.ArrayBuffer();
spark.append(evt.target.result);
const md5 = spark.end();
resolve({ md5, file });
};
fileReader.onerror = () => {
reject({ message: "文件解析失败" });
}
fileReader.readAsArrayBuffer(file);
});
}
const getFileMD5Progress = (file, progress) => {
return new Promise((resolve, reject) => {
const chunkSize = 2097152; // 每次读取2MB.
const chunks = getFileChunk(file, chunkSize);
const spark = new SparkMD5.ArrayBuffer();
let currentChunkIndex = 0;
const loadNext = () => {
const reader = new FileReader();
reader.onload = e => {
progress && progress(Math.round(currentChunkIndex / chunks.length * 100) + "%");
currentChunkIndex++;
spark.append(e.target.result);
if (currentChunkIndex < chunks.length) {
loadNext();
} else {
const md5 = spark.end();
resolve({ md5, file });
}
};
reader.readAsArrayBuffer(chunks[currentChunkIndex]);
};
loadNext();
});
};
const getFileChunk = (file, chunkSize) => {
const chunks = [];
const fileSize = file.size;
let currentChunkStart = 0;
while (currentChunkStart < fileSize) {
const chunkEnd = currentChunkStart + chunkSize;
const chunk = file.slice(currentChunkStart, chunkEnd);
chunks.push(chunk);
currentChunkStart = chunkEnd;
}
return chunks;
};
export {
fileMd5Sum,
getFileMD5Progress
}
......@@ -140,21 +140,22 @@ let fileUpload = (url, formData, headers = {}) => {
})
};
let fileUploadProgress = (url, formData, progressFunction, uploadComplete, uploadFailed) => {
let fileUploadProgress = (url, formData, progressFunction) => {
return new Promise((resolve, reject) => {
let token = sessionStorage.getItem("token");
let xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
xhr.open("PUT", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
xhr.open("POST", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
xhr.onload = (e) => {
var info = xhr.responseText;
let result = JSON.parse(info);
if (result.code == 9000) {
uploadComplete(result.data);
resolve(result.data);
} else {
uploadFailed(result);
reject(result);
}
}; //请求完成
xhr.onerror = (evt) => {
uploadFailed({ message: "错误" });
reject({ message: "错误" });
} //请求失败
xhr.upload.onprogress = (evt) => {
if (evt.lengthComputable) {//
......@@ -166,6 +167,8 @@ let fileUploadProgress = (url, formData, progressFunction, uploadComplete, uploa
};
xhr.setRequestHeader(ACCESS_TOKEN, token);
xhr.send(formData); //开始上传,发送form数据
});
};
//下载文件 type传文件类型 例如:doc,xls...
......
......@@ -714,9 +714,10 @@ export default {
_this.title = "正在播放视频---" + row.name;
_this.centerDialogVisible_video = true;
setTimeout(function () {
let path_srt = "api/rest/document/download/";
path_srt = path_srt + _this.type_folder + '/'+row.file.uuid;
_this.video_src = path_srt;
// let path_srt = "api/rest/document/download/";
// path_srt = path_srt + _this.type_folder + '/'+row.file.uuid;
// _this.video_src = path_srt;
_this.video_src = `api/rest/file/playVideo/Document?objectName=${row.file.uuid}`
if (document.getElementById("video").currentTime != 0)
document.getElementById("video").currentTime = 0;
}, 500);
......
......@@ -554,9 +554,10 @@ export default {
_this.title = "正在播放视频---" + row.name;
_this.centerDialogVisible_video = true;
setTimeout(function () {
let path_srt = "api/rest/document/download/";
path_srt = path_srt + _this.type_folder + '/'+row.file.uuid;
_this.video_src = path_srt;
// let path_srt = "api/rest/document/download/";
// path_srt = path_srt + _this.type_folder + '/'+row.file.uuid;
// _this.video_src = path_srt;
_this.video_src = `api/rest/file/playVideo/Document?objectName=${row.file.uuid}`
if (document.getElementById("video").currentTime != 0)
document.getElementById("video").currentTime = 0;
}, 500);
......
......@@ -597,9 +597,10 @@ export default {
_this.title = "正在播放视频---" + row.name;
_this.centerDialogVisible_video = true;
setTimeout(function () {
let path_srt = "api/rest/file/download/Document/";
path_srt = path_srt + row.file.uuid;
_this.video_src = path_srt;
// let path_srt = "api/rest/file/download/Document/";
// path_srt = path_srt + row.file.uuid;
// _this.video_src = path_srt;
_this.video_src = `api/rest/file/playVideo/Document?objectName=${row.file.uuid}`
if (document.getElementById("video").currentTime != 0)
document.getElementById("video").currentTime = 0;
}, 500);
......
......@@ -797,9 +797,10 @@ export default {
_this.title = "正在播放视频---" + row.name;
_this.centerDialogVisible_video = true;
setTimeout(function () {
let path_srt = "api/rest/file/download/Document/";
path_srt = path_srt + row.file.uuid;
_this.video_src = path_srt;
// let path_srt = "api/rest/file/download/Document/";
// path_srt = path_srt + row.file.uuid;
// _this.video_src = path_srt;
_this.video_src = `api/rest/file/playVideo/Document?objectName=${row.file.uuid}`
if (document.getElementById("video").currentTime != 0)
document.getElementById("video").currentTime = 0;
}, 500);
......
......@@ -299,6 +299,8 @@ import {
} from "../../util/http_util";
import { uuid } from "../../util/data_util";
import BigfileUpload from "../../components/common/bigfile_upload.vue";
import { fileMd5Sum, getFileMD5Progress } from '../../util/file_md5.js';
export default {
data() {
return {
......@@ -517,9 +519,11 @@ export default {
_this.title = "正在播放视频---" + row.name;
_this.centerDialogVisible_video = true;
setTimeout(function () {
let path_srt = "api/rest/file/download/Document/";
path_srt = path_srt + row.file.uuid;
_this.video_src = path_srt;
// let path_srt = "api/rest/file/download/Document/";
// path_srt = path_srt + row.file.uuid;
// _this.video_src = path_srt;
_this.video_src = `api/rest/file/playVideo/Document?objectName=${row.file.uuid}`
if (document.getElementById("video").currentTime != 0)
document.getElementById("video").currentTime = 0;
}, 500);
......@@ -734,7 +738,6 @@ export default {
message: "请选择文档列表子节点",
});
} else {
let fd = new FormData();
let file_ext = this.form_add.fileList[0].name.substring(
lastIndexOf(this.form_add.fileList[0].name, ".") + 1,
this.form_add.fileList[0].name.length
......@@ -753,23 +756,47 @@ export default {
keyword: this.form_add.gjc.trim(),
module: this.module_name
};
fd.append("info", JSON.stringify(fileInfo));
fd.append("folder", this.type_folder);
fd.append("file", this.form_add.fileList[0].raw);
//单个文件上传
let load = startLoadingProgress("0%");
let self = this;
this.centerDialogVisible_add = false;
this.loadingText = "0%";
fileUploadProgress("api/rest/3z/document/upload", fd, res => {
load.text = res;
},
res => {
load.text = "";
let md5 = "";
let file = null;
//获取md5
getFileMD5Progress(this.form_add.fileList[0].raw, (progress) => {
load.text = "解析中:" + progress;
}).then(res => {
md5 = res.md5;
file = res.file;
return this.checkFileExist(md5);//检查文件是否存在
})
.then(result => {
if (!result) {
let fd = new FormData();
fd.append("file", file);
fd.append("filename", md5);
fd.append("bucket", "MERGE");
return fileUploadProgress("api/rest/file/upload", fd, res => {//文件上传
load.text = "上传中:" + res;
});
} else {
return Promise.reject({ message: "文件已存在" });
}
})
.then(res => {
let fd1 = new FormData();
fd1.append("info", JSON.stringify(fileInfo));
fd1.append("md5", res);
fd1.append("destFilename", fileInfo.file.uuid);
load.text = "完成中";
return fileUpload_PUT("api/rest/3z/document/upload", fd1);//文件信息上传
}).then(res => {
endLoading();
console.log("loaded");
self.handleCurrentChange_lb(1);
},
err => {
}).catch(err => {
endLoading();
console.log("error");
this.$message.warning(err.message);
......
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Video.js 6.2.8</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/video.js/7.3.0/video-js.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/video.js/7.3.0/video.min.js"></script>
<style>
</style>
</head>
<body>
<div class="m">
<video id="my-video" class="video-js" controls preload="auto" width="740" height="400" data-setup="{}">
</video>
</div>
</body>
<script type="text/javascript">
var myPlayer = videojs('my-video', {
sources: [{
src: "http://192.168.168.213:8081/rest/file/playVideo/Document?objectName=wu_1hglhdmhs5u313gdtm816b8166eb2.mp4",
autoplay: true,
playbackRates: [0.5, 1, 1.5, 2] //倍速播放
}]
}, function () {
console.log("videojs播放器初始化成功");
});
myPlayer.play();
</script>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment