Commit c8ea7868 authored by 夏敏伟's avatar 夏敏伟
parents 9c23457e 3078b2e4
...@@ -7181,6 +7181,11 @@ ...@@ -7181,6 +7181,11 @@
"source-map": "^0.6.0" "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": { "spdx-correct": {
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
......
...@@ -7,7 +7,6 @@ import ElementUI from 'element-ui' ...@@ -7,7 +7,6 @@ import ElementUI from 'element-ui'
import './element-variables.scss' import './element-variables.scss'
import "echarts-wordcloud/dist/echarts-wordcloud"; import "echarts-wordcloud/dist/echarts-wordcloud";
import "echarts-wordcloud/dist/echarts-wordcloud.min"; import "echarts-wordcloud/dist/echarts-wordcloud.min";
Vue.use(ElementUI) Vue.use(ElementUI)
new Vue({ new Vue({
router, 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 = {}) => { ...@@ -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 token = sessionStorage.getItem("token");
let xhr = new XMLHttpRequest(); // XMLHttpRequest 对象 let xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
xhr.open("PUT", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。 xhr.open("POST", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
xhr.onload = (e) => { xhr.onload = (e) => {
var info = xhr.responseText; var info = xhr.responseText;
let result = JSON.parse(info); let result = JSON.parse(info);
if (result.code == 9000) { if (result.code == 9000) {
uploadComplete(result.data); resolve(result.data);
} else { } else {
uploadFailed(result); reject(result);
} }
}; //请求完成 }; //请求完成
xhr.onerror = (evt) => { xhr.onerror = (evt) => {
uploadFailed({ message: "错误" }); reject({ message: "错误" });
} //请求失败 } //请求失败
xhr.upload.onprogress = (evt) => { xhr.upload.onprogress = (evt) => {
if (evt.lengthComputable) {// if (evt.lengthComputable) {//
...@@ -166,6 +167,8 @@ let fileUploadProgress = (url, formData, progressFunction, uploadComplete, uploa ...@@ -166,6 +167,8 @@ let fileUploadProgress = (url, formData, progressFunction, uploadComplete, uploa
}; };
xhr.setRequestHeader(ACCESS_TOKEN, token); xhr.setRequestHeader(ACCESS_TOKEN, token);
xhr.send(formData); //开始上传,发送form数据 xhr.send(formData); //开始上传,发送form数据
});
}; };
//下载文件 type传文件类型 例如:doc,xls... //下载文件 type传文件类型 例如:doc,xls...
......
...@@ -714,9 +714,10 @@ export default { ...@@ -714,9 +714,10 @@ export default {
_this.title = "正在播放视频---" + row.name; _this.title = "正在播放视频---" + row.name;
_this.centerDialogVisible_video = true; _this.centerDialogVisible_video = true;
setTimeout(function () { setTimeout(function () {
let path_srt = "api/rest/document/download/"; // let path_srt = "api/rest/document/download/";
path_srt = path_srt + _this.type_folder + '/'+row.file.uuid; // path_srt = path_srt + _this.type_folder + '/'+row.file.uuid;
_this.video_src = path_srt; // _this.video_src = path_srt;
_this.video_src = `api/rest/file/playVideo/Document?objectName=${row.file.uuid}`
if (document.getElementById("video").currentTime != 0) if (document.getElementById("video").currentTime != 0)
document.getElementById("video").currentTime = 0; document.getElementById("video").currentTime = 0;
}, 500); }, 500);
......
...@@ -554,9 +554,10 @@ export default { ...@@ -554,9 +554,10 @@ export default {
_this.title = "正在播放视频---" + row.name; _this.title = "正在播放视频---" + row.name;
_this.centerDialogVisible_video = true; _this.centerDialogVisible_video = true;
setTimeout(function () { setTimeout(function () {
let path_srt = "api/rest/document/download/"; // let path_srt = "api/rest/document/download/";
path_srt = path_srt + _this.type_folder + '/'+row.file.uuid; // path_srt = path_srt + _this.type_folder + '/'+row.file.uuid;
_this.video_src = path_srt; // _this.video_src = path_srt;
_this.video_src = `api/rest/file/playVideo/Document?objectName=${row.file.uuid}`
if (document.getElementById("video").currentTime != 0) if (document.getElementById("video").currentTime != 0)
document.getElementById("video").currentTime = 0; document.getElementById("video").currentTime = 0;
}, 500); }, 500);
......
...@@ -597,9 +597,10 @@ export default { ...@@ -597,9 +597,10 @@ export default {
_this.title = "正在播放视频---" + row.name; _this.title = "正在播放视频---" + row.name;
_this.centerDialogVisible_video = true; _this.centerDialogVisible_video = true;
setTimeout(function () { setTimeout(function () {
let path_srt = "api/rest/file/download/Document/"; // let path_srt = "api/rest/file/download/Document/";
path_srt = path_srt + row.file.uuid; // path_srt = path_srt + row.file.uuid;
_this.video_src = path_srt; // _this.video_src = path_srt;
_this.video_src = `api/rest/file/playVideo/Document?objectName=${row.file.uuid}`
if (document.getElementById("video").currentTime != 0) if (document.getElementById("video").currentTime != 0)
document.getElementById("video").currentTime = 0; document.getElementById("video").currentTime = 0;
}, 500); }, 500);
......
...@@ -797,9 +797,10 @@ export default { ...@@ -797,9 +797,10 @@ export default {
_this.title = "正在播放视频---" + row.name; _this.title = "正在播放视频---" + row.name;
_this.centerDialogVisible_video = true; _this.centerDialogVisible_video = true;
setTimeout(function () { setTimeout(function () {
let path_srt = "api/rest/file/download/Document/"; // let path_srt = "api/rest/file/download/Document/";
path_srt = path_srt + row.file.uuid; // path_srt = path_srt + row.file.uuid;
_this.video_src = path_srt; // _this.video_src = path_srt;
_this.video_src = `api/rest/file/playVideo/Document?objectName=${row.file.uuid}`
if (document.getElementById("video").currentTime != 0) if (document.getElementById("video").currentTime != 0)
document.getElementById("video").currentTime = 0; document.getElementById("video").currentTime = 0;
}, 500); }, 500);
......
...@@ -299,6 +299,8 @@ import { ...@@ -299,6 +299,8 @@ import {
} from "../../util/http_util"; } from "../../util/http_util";
import { uuid } from "../../util/data_util"; import { uuid } from "../../util/data_util";
import BigfileUpload from "../../components/common/bigfile_upload.vue"; import BigfileUpload from "../../components/common/bigfile_upload.vue";
import { fileMd5Sum, getFileMD5Progress } from '../../util/file_md5.js';
export default { export default {
data() { data() {
return { return {
...@@ -517,9 +519,11 @@ export default { ...@@ -517,9 +519,11 @@ export default {
_this.title = "正在播放视频---" + row.name; _this.title = "正在播放视频---" + row.name;
_this.centerDialogVisible_video = true; _this.centerDialogVisible_video = true;
setTimeout(function () { setTimeout(function () {
let path_srt = "api/rest/file/download/Document/"; // let path_srt = "api/rest/file/download/Document/";
path_srt = path_srt + row.file.uuid; // path_srt = path_srt + row.file.uuid;
_this.video_src = path_srt; // _this.video_src = path_srt;
_this.video_src = `api/rest/file/playVideo/Document?objectName=${row.file.uuid}`
if (document.getElementById("video").currentTime != 0) if (document.getElementById("video").currentTime != 0)
document.getElementById("video").currentTime = 0; document.getElementById("video").currentTime = 0;
}, 500); }, 500);
...@@ -734,7 +738,6 @@ export default { ...@@ -734,7 +738,6 @@ export default {
message: "请选择文档列表子节点", message: "请选择文档列表子节点",
}); });
} else { } else {
let fd = new FormData();
let file_ext = this.form_add.fileList[0].name.substring( let file_ext = this.form_add.fileList[0].name.substring(
lastIndexOf(this.form_add.fileList[0].name, ".") + 1, lastIndexOf(this.form_add.fileList[0].name, ".") + 1,
this.form_add.fileList[0].name.length this.form_add.fileList[0].name.length
...@@ -753,23 +756,47 @@ export default { ...@@ -753,23 +756,47 @@ export default {
keyword: this.form_add.gjc.trim(), keyword: this.form_add.gjc.trim(),
module: this.module_name 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 load = startLoadingProgress("0%");
let self = this; let self = this;
this.centerDialogVisible_add = false; this.centerDialogVisible_add = false;
this.loadingText = "0%"; load.text = "";
fileUploadProgress("api/rest/3z/document/upload", fd, res => { let md5 = "";
load.text = res; let file = null;
}, //获取md5
res => { 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(); endLoading();
console.log("loaded"); console.log("loaded");
self.handleCurrentChange_lb(1); self.handleCurrentChange_lb(1);
}, }).catch(err => {
err => {
endLoading(); endLoading();
console.log("error"); console.log("error");
this.$message.warning(err.message); 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