不允许加载本地资源: [英] Not allowed to load local resource:

查看:368
本文介绍了不允许加载本地资源:的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想流式传输在线视频..但是我遇到了j查询错误不允许加载本地资源: ...我找到了很多解决方案,但都对我不起作用. 这是我的代码...

i want to stream online videos ..but i am facing j query error Not allowed to load local resource: ...i find many solution but that all did not work for me. here is my code...

controller == >>>

 public ActionResult PlayVideo(string VidPath)
        {

            ViewData["VidPath"] = VidPath;
            return View();
        }

视图== >>>

<video width="500" height="281" controls>
    <source src="@ViewData["VidPath"]" type="video/mp4">

</video>

推荐答案

您只需要将所有图像/视频网络路径(或本地路径)替换为存储的已编码HTML字符串中的字节字符串即可. 为此,您需要HtmlAgilityPack将HTML字符串转换为HTML文档. https://www.nuget.org/packages/HtmlAgilityPack

You just need to replace all image/video network paths(or local path) to byte strings in stored Encoded HTML sting. For this you required HtmlAgilityPack to convert Html string to Html document. https://www.nuget.org/packages/HtmlAgilityPack

查找以下代码,将每个图像src网络路径(或本地路径)转换为字节字符串. 它肯定会在IE,chrome和firefox中显示所有具有网络路径(或本地路径)的图像.

Find Below code to convert each image src network path(or local path) to byte sting. It will definitely display all images with network path(or local path) in IE,chrome and firefox.

string encodingHtmlString = Emailmodel.DtEmailFields.Rows [0] ["Body"].ToString();

string encodedHtmlString = Emailmodel.DtEmailFields.Rows[0]["Body"].ToString();

            // Decode the encoded string.
            StringWriter myWriter = new StringWriter();
            HttpUtility.HtmlDecode(encodedHtmlString, myWriter);
            string DecodedHtmlString = myWriter.ToString();

            //find and replace each img src with byte string
             HtmlDocument document = new HtmlDocument();
             document.LoadHtml(DecodedHtmlString);
             document.DocumentNode.Descendants("img")
              .Where(e =>
            {
                string src = e.GetAttributeValue("src", null) ?? "";
                return !string.IsNullOrEmpty(src);//&& src.StartsWith("data:image");
            })
            .ToList()
                        .ForEach(x =>
                        {
                            string currentSrcValue = x.GetAttributeValue("src", null);                                
                            string filePath = Path.GetDirectoryName(currentSrcValue) + "\\";
                            string filename = Path.GetFileName(currentSrcValue);
                            string contenttype = "image/" + Path.GetExtension(filename).Replace(".", "");
                            FileStream fs = new FileStream(filePath + filename, FileMode.Open, FileAccess.Read);
                            BinaryReader br = new BinaryReader(fs);
                            Byte[] bytes = br.ReadBytes((Int32)fs.Length);
                            br.Close();
                            fs.Close();
                            x.SetAttributeValue("src", "data:" + contenttype + ";base64," + Convert.ToBase64String(bytes));                                
                        });

            string result = document.DocumentNode.OuterHtml;
            //Encode HTML string
            string myEncodedString = HttpUtility.HtmlEncode(result);

            Emailmodel.DtEmailFields.Rows[0]["Body"] = myEncodedString;

这篇关于不允许加载本地资源:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆