【问题标题】:Not allowed to load local resource:不允许加载本地资源:
【发布时间】:2016-11-04 16:42:36
【问题描述】:

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

控制器==>>>

 public ActionResult PlayVideo(string VidPath)
        {

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

查看==>>>

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

</video>

【问题讨论】:

  • 提供虚拟路径,而不是物理路径。
  • 我替换成这个但是错误是一样的..
  • 我想如果你这样做,它需要scr="@Url.Content(Server.MapPath(......))"
  • 我应该将物理路径放在 server.mappath 的括号内吗??
  • 试试scr="@Url.Content(Server.MapPath("~App_Data/uploads/"+User.Identity.Name+"/Videos_f65db84d-4‌​b24-4054-a270-bb9afaf1cff8/video-1449306301.mp4"))"(虽然Server.MapPath()`应该在控制器中完成,并将结果传递给视图。

标签: c# jquery asp.net-mvc json.net


【解决方案1】:

我遇到了同样的问题。每当我使用 Server.MapPathPath.GetFullPath 或只是硬编码“~/Content/images/image.jpg”时,我总是遇到同样的错误,不允许加载本地资源。

它对我有用的唯一方法是当我使用没有

的“Content/images/image.jpg”

~/

开头

所以我的解决方法是这样的

var imageName = Path.GetFileName(image);
var parentImage = Directory.GetParent(image);
var parentOrder = Directory.GetParent(parentImage.FullName);
var parentDate = Directory.GetParent(parentOrder.FullName);

<img src="Content/Images/@parentDate.Name/@parentOrder.Name/@parentImage.Name/@imageName" />

这有点乱,但对我有用。或者,您也可以在 ViewModel 中传递变量路径以使代码更简洁。

如果有人知道更好的解决方案,请在此处发布,以便人们知道正确的答案。

【讨论】:

    【解决方案2】:

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

    在下面找到将每个图像 src 网络路径(或本地路径)转换为字节串的代码。 它肯定会在IE、chrome和firefox中显示所有带有网络路径(或本地路径)的图像。

    字符串编码HtmlString = 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;
    

    【讨论】:

      【解决方案3】:

      我对这条线有同样的问题。我忽略了将css和js文件添加到静态文件wwwroot。我在项目中添加了静态文件,这些问题已经解决。 Solve point

      &lt;link href="~/css/bootstrap.min.css" rel="stylesheet" /&gt;

      【讨论】:

      • 这个答案与问题完全无关。
      猜你喜欢
      • 2016-10-08
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多