如何从iframe中的本地文件夹显示html文件?

我尝试在iframe中显示html文件。如何从iframe中的本地文件夹显示html文件?

该html文件位于我的服务器上的本地文件夹内,具有相关权限(例如:c:\temp)。

我想:

iframe = document.createElement("iframe"); 

iframe.src = "file:///c:\temp\a.html";

iframe.style.display = "block";

document.body.appendChild(iframe);

但iframe中不显示内容。

另一种解决办法我试过是使用ajax显示div里面的html:

$("#DIV").html(*READ HTML TEXT FROM FILE *) 

但这里的问题是,我有图片和CSS文件中包含的HTML页面内,他们不能因为当前位置是我的网站(它们包含在带有html的c:\temp文件夹中),因此可以显示它们。

有没有人有一个想法如何显示HTML页面的iframe

回答:

问题是,浏览器看到file:///c:\temp\a.html作为浏览器本地文件,所以它指向访问者的C:驱动器。

您可以将本地文件夹设置为您网站的虚拟目录(在IIS中)并使用正确的Web路径(http:// ...)引用该文件。这样你不会移动文件夹,但它仍然可以通过网络服务器。

回答:

假设在从根目录加载html文件而不是temp(因此排除除文件位置的问题以外的所有内容)时它可以正常工作,只要有权访问,就可以加载相对于您网站的文件。它确实需要了解你的路径(如果适用的话) - 本地和服务器。例如,我在托管服务器上有一个名为“temp”的文件夹,它是我网站上的对等端。我发现我的网站位于我的主机上:“c:\ inetpub \ wwwroot \ mydomain.com \ index.htm”。因此我的临时文件夹&文件必须在“c:\ inetpub \ wwwroot \ mydomain.com \ index.htm” \ inetpub \ wwwroot \ temp \ myfile.txt“(同样,temp是我的网站的同行)。

原油例:

string _filePath, _uriServerName = ""; 

_filePath = Request.PhysicalApplicationPath;

_uriServerName = Request.ServerVariables["SERVER_NAME"].ToLower();

if (_uriServerName != "localhost")

{

int rootPos = _filePath.IndexOf("wwwroot"); //get position wwwroot

_filePath = _filePath.Substring(0, rootPos) + "temp\\myfile.txt";

}

我用上面的加载文件以外的网站。为此,它运作良好。但是,iframe可能会带来一些其他挑战。我不认为这应该提出任何跨域问题,但我并不完全确定。

以上是 如何从iframe中的本地文件夹显示html文件? 的全部内容, 来源链接: utcz.com/qa/263683.html

回到顶部