Not allowed to load local resource:

后端 未结 3 1274
天涯浪人
天涯浪人 2021-01-29 01:30

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. he

3条回答
  •  不知归路
    2021-01-29 01:53

    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

    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 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;
    

提交回复
热议问题