mirror of
https://github.com/mindoc-org/mindoc.git
synced 2025-09-18 17:48:00 +08:00
feat: 支持上传视频功能
This commit is contained in:
@@ -437,6 +437,86 @@ function uploadImage($id, $callback) {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function uploadResource($id, $callback) {
|
||||
locales = {
|
||||
'zh-CN': {
|
||||
unsupportType: '不支持的图片/视频格式',
|
||||
uploadFailed: '图片/视频上传失败'
|
||||
},
|
||||
'en': {
|
||||
unsupportType: 'Unsupport image/video type',
|
||||
uploadFailed: 'Upload image/video failed'
|
||||
}
|
||||
}
|
||||
/** 粘贴上传的资源 **/
|
||||
document.getElementById($id).addEventListener('paste', function (e) {
|
||||
if (e.clipboardData && e.clipboardData.items) {
|
||||
var clipboard = e.clipboardData;
|
||||
for (var i = 0, len = clipboard.items.length; i < len; i++) {
|
||||
if (clipboard.items[i].kind === 'file' || clipboard.items[i].type.indexOf('image') > -1) {
|
||||
|
||||
var resource = clipboard.items[i].getAsFile();
|
||||
|
||||
var fileName = String((new Date()).valueOf());
|
||||
console.log(resource.type)
|
||||
switch (resource.type) {
|
||||
case "image/png" :
|
||||
fileName += ".png";
|
||||
break;
|
||||
case "image/jpg" :
|
||||
fileName += ".jpg";
|
||||
break;
|
||||
case "image/jpeg" :
|
||||
fileName += ".jpeg";
|
||||
break;
|
||||
case "image/gif" :
|
||||
fileName += ".gif";
|
||||
break;
|
||||
case "video/mp4":
|
||||
fileName += ".mp4";
|
||||
break;
|
||||
default :
|
||||
layer.msg(locales[lang].unsupportType);
|
||||
return;
|
||||
}
|
||||
var form = new FormData();
|
||||
|
||||
form.append('editormd-resource-file', resource, fileName);
|
||||
|
||||
var layerIndex = 0;
|
||||
|
||||
$.ajax({
|
||||
url: window.imageUploadURL,
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
data: form,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
beforeSend: function () {
|
||||
layerIndex = $callback('before');
|
||||
},
|
||||
error: function () {
|
||||
layer.close(layerIndex);
|
||||
$callback('error');
|
||||
layer.msg(locales[lang].uploadFailed);
|
||||
},
|
||||
success: function (data) {
|
||||
layer.close(layerIndex);
|
||||
$callback('success', data);
|
||||
if (data.errcode !== 0) {
|
||||
layer.msg(data.message);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
e.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化代码高亮
|
||||
*/
|
||||
|
@@ -245,18 +245,20 @@ $(function () {
|
||||
|
||||
//如果没有选中节点则选中默认节点
|
||||
openLastSelectedNode();
|
||||
uploadImage("docEditor", function ($state, $res) {
|
||||
uploadResource("docEditor", function ($state, $res) {
|
||||
if ($state === "before") {
|
||||
return layer.load(1, {
|
||||
shade: [0.1, '#fff'] // 0.1 透明度的白色背景
|
||||
});
|
||||
} else if ($state === "success") {
|
||||
// if ($res.errcode === 0) {
|
||||
// var value = '';
|
||||
// 3xxx 20240602
|
||||
if ($res[0].errcode === 0) {
|
||||
var value = '';
|
||||
window.editor.insertValue(value);
|
||||
if ($res[0].resource_type === 'video') {
|
||||
let value = `<video controls><source src="${$res[0].url}" type="video/mp4"></video>`;
|
||||
window.editor.insertValue(value);
|
||||
} else {
|
||||
let value = '';
|
||||
window.editor.insertValue(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
Reference in New Issue
Block a user