IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> C# Umeditor 编辑器上传本地视频、本地文件 -> 正文阅读

[开发工具]C# Umeditor 编辑器上传本地视频、本地文件

Umeditor
最近在做一个网站,涉及到网站文章的编辑。Umeditor是一个很好的选择,但是看了一下Umeditor,发现不能上传本地视频和本地文件,而项目又要得比较急,所以以我觉得最快的方式修改了Umeditor.js。

效果展示

在这里插入图片描述
在这里插入图片描述

温馨提示:这个地方不要上传大视频

1、下载Umeditor相关文件

Umeditor下载
运行index.html。可以看见这时候不能上传本地视频
在这里插入图片描述

2、上传本地Video。

1、打开video.js。在这个地方后面添加以下代码
在这里插入图片描述

 '<table style="margin-bottom: 10px">' +
            '<tr><td>'+
            '<span style="font-weight: bold;margin-left: 6px;"><%=lang_video_upload%></span>' +
            '<input id="uploadVideo" style="margin-left: 5px;" type="file" hidefocus name="upVideo" accept="video/MP3,video/MP4,video/WEBM,video/MPEG,video/AVI,video/WMV,video/OGG,video/EVA,video/MOV"/>' +
            '</td></tr>' +
            '</table>' +

2、同时在video函数内添加以下代码
在这里插入图片描述
在这里插入图片描述

 videoOnChange() {
            var me = this;
            var objUrl = me.getObjectURL($('#uploadVideo')[0].files[0]); //获取video的路径
            if (objUrl) {
                me.upload();
            }
        },
        upload: function () {
            document.getElementById("videoMask").style.display = "block";

            var me = this;
            var href = me.getRootPath() + "/ForegroundArticle/uploadAllFile?Path=\\Upload\\ArticleFiles\\Video";//后台Controller上传文件的地址

            var videoVal = $('#uploadVideo')[0].files[0];
            var file = new FormData();
            file.append('file', videoVal);
            $.ajax({
                url: href,
                type: "post",
                data: file,
                cache: false,
                contentType: false,
                processData: false,
                success: function (data) {
                    document.getElementById("videoMask").style.display = "none";
                    var res = JSON.parse(data);
                    $("#eduiVideoUrl").val(res.data.src);
                    me.createPreviewVideo(res.data.src);
                }
            });
        },
        getRootPath: function () {
            var curWwwPath = window.document.location.href;
            var pathName = window.document.location.pathname;
            var pos = curWwwPath.indexOf(pathName);
            //获取主机地址,
            var localhostPaht = curWwwPath.substring(0, pos); 
            return localhostPaht;
        },
        getObjectURL(file) {
            var url = null;
            if (window.createObjectURL != undefined) { // basic
                url = window.createObjectURL(file);
            } else if (window.URL != undefined) { // mozilla(firefox)
                url = window.URL.createObjectURL(file);
            } else if (window.webkitURL != undefined) { // webkit or chrome
                url = window.webkitURL.createObjectURL(file);
            }
            return url;
        },
        getObjectType(file) {
            var type = "";
            if (file != null) {
                var typeSplit = file.type.split("/");
                if (typeSplit.length == 2) {
                    type = typeSplit[1].toLowerCase();
                }
            }
            return type;
        }

此处的getObjectType()和getObjectURL()是同样的方法,可以放在一个地方共用。我没有放一起而已。
3、后台Controller代码

/// <summary>
        /// 上传所有文件
        /// </summary>
        /// <param name="Path"></param>
        /// <returns></returns>
        public string uploadAllFile(string Path = "UpLoad\\")
        {
            Path = Path + "\\" + DateTime.Now.ToString("yyyy-MM-dd");//根据日期分类

            LayuiFileResult res = new LayuiFileResult();
            try
            {
                HttpPostedFileBase fileData = Request.Files[0];
                if (fileData != null && fileData.ContentLength > 0)
                {
                    string fileSavePath = Server.MapPath("~") + Path;
                    int size = fileData.ContentLength;
                    //获取文件的扩展名
                    string extName = System.IO.Path.GetExtension(fileData.FileName);
                    string universalUploadExts = ConfigurationManager.AppSettings["UniversalUpLoadExtension"].ToString();
                    var universalUploadList = universalUploadExts.Split(',').ToList();
                    string zipUpLoadExts = ConfigurationManager.AppSettings["ZipUpLoadExtension"].ToString();
                    var zipUpLoadList = zipUpLoadExts.Split(',').ToList();
                    string videoUpLoadExts = ConfigurationManager.AppSettings["VideoUpLoadExtension"].ToString();
                    var videoUpLoadList = videoUpLoadExts.Split(',').ToList();
                    string fileUpLoadExts = ConfigurationManager.AppSettings["FileUpLoadExtension"].ToString();
                    var fileUpLoadList = fileUpLoadExts.Split(',').ToList();
                    universalUploadList.AddRange(zipUpLoadList);
                    universalUploadList.AddRange(videoUpLoadList);
                    universalUploadList.AddRange(fileUpLoadList);
                    universalUploadList.ForEach(i => i.ToLower());
                    if (!universalUploadList.Contains(extName.ToLower()))
                    {
                        res.code = -1;
                        res.msg = "上传失败,不支持该格式文件!";
                    }
                    else
                    {
                        //得到一个新文件的名称
                        string newName = Guid.NewGuid().ToString() + extName;
                        //如果文件目录不存在 创建目录
                        if (!System.IO.Directory.Exists(fileSavePath))
                        {
                            System.IO.Directory.CreateDirectory(fileSavePath);
                        }
                        //服务器保存文件
                        string path = System.IO.Path.Combine(fileSavePath, newName);
                        fileData.SaveAs(path);
                        List<string> FilsDicNames = Path.Split('\\').Where(i => !string.IsNullOrEmpty(i)).ToList();
                        foreach (var item in FilsDicNames)
                        {
                            res.data.src = res.data.src + ("/" + item);
                        }
                        res.data.src = res.data.src + "/" + newName;
                        res.data.FileName = fileData.FileName;
                    }
                }
            }
            catch (Exception ex)
            {
                res.code = -1;
                res.msg = ex.Message;
                Logger.Write(typeof(DefaultController), "DefaultController:uploadAllFile" + ex.Message);
            }
            return JsonConvert.SerializeObject(res);
        }

4、LayuiFileResult:上传文件的返回值

//上传文件的返回值
    public class LayuiFileResult
    {
        public int code { get; set; } = 1;
        public string msg { get; set; } = "成功";
        public FileInfo data { get; set; } = new FileInfo();
    }

到此,可以上传本地视频。
解决百度umeditor 无法插入.MP4 .avi 视频格式的问题

3、上传本地附件

1、打开zh-cn.js。添加以下代码
在这里插入图片描述
2、打开Umeditor.js,添加以下代码:
在这里插入图片描述
在这里插入图片描述
在createUI中添加以下代码:
在这里插入图片描述


                //附件上传隐藏框
                var upID = "#uploadFile_" + id.replace("#", "");
                if ($(upID).length == 0) {
                    var $upFile = $('<input id=' + (upID.replace("#", "")) + ' style="display:none" type="file"/>');
                    $upFile.insertBefore($container);

                    $(upID).on("change", function () {
                        var objUrl = getObjectURL($(upID)[0].files[0]);
                        if (objUrl) {
                            uploadFile(editor);
                        }
                    });
                }

在这里插入图片描述


    //文件上传相关---开始
    UM.registerUI('upFile', function (name) {
        var me = this;
        var upID = "#uploadFile_" + me.$body.selector.replace("#","");
        var $btn = $.eduibutton({
            icon: name,
            click: function () {
                setTimeout(function () {
                    $(upID).click();
                }, 500);
            },
            title: '附件上传'
        });
        this.addListener('selectionchange', function () {
            //切换为不可编辑时,把自己变灰
            var state = this.queryCommandState(name);
            $btn.edui().disabled(state == -1).active(state == 1)
        });
        return $btn;
    });
    function uploadFile(me) {
        var upID = "#uploadFile_" + me.id.replace("#", "");
        var href = getRootPath() + "/ForegroundArticle/uploadAllFile?Path=\\Upload\\ArticleFiles\\Files";
        var fileVal = $(upID)[0].files[0];
        var file = new FormData();
        file.append('file', fileVal);
        $.ajax({
            url: href,
            type: "post",
            data: file,
            cache: false,
            contentType: false,
            processData: false,
            success: function (data) {
                var res = JSON.parse(data);
                var innerHtml = "<a href=\"" + res.data.src + "\" target=\"_self\" >" + res.data.FileName + "</a>";
                UM.getEditor(me.id).execCommand('inserthtml', innerHtml);
            }
        });
    }
    function getObjectURL(file) {
        var url = null;
        if (window.createObjectURL != undefined) { // basic
            url = window.createObjectURL(file);
        } else if (window.URL != undefined) { // mozilla(firefox)
            url = window.URL.createObjectURL(file);
        } else if (window.webkitURL != undefined) { // webkit or chrome
            url = window.webkitURL.createObjectURL(file);
        }
        return url;
    }
    function getRootPath() {
        var curWwwPath = window.document.location.href;
        var pathName = window.document.location.pathname;
        var pos = curWwwPath.indexOf(pathName);
        //获取主机地址,
        var localhostPaht = curWwwPath.substring(0, pos);
        return localhostPaht;
    }
    //文件上传相关--结束

到此,便可以上传附件了

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:48:06  更:2022-03-10 22:49:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:30:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码