我在.html
上的服务器c:\test\test.html
页面中。
我想在客户端计算机上的iframe中显示test.html
,该怎么办?
我尝试过的事情:
<iframe id="serviceFrameSend" src="file:///c:\test\test.html" width="1000" height="1000" frameborder="0">
但是在客户端计算机上找到了test.html
文件,因此如何使test.html
从服务器加载?
如果不可能,我该怎么办?
由于您在服务器上有页面,因此需要使用http://
网址,而不是file:///
。这有点棘手,因为Web服务器的文件路径比文件系统的文件具有different syntax。这是一些选项。
<iframe id="serviceFrameSend" src="test.html" width="1000" height="1000" frameborder="0">
<iframe id="serviceFrameSend" src="./test.html" width="1000" height="1000" frameborder="0">
如果test.html
位于相同目录作为主页,则可以使用它们。 (主页是其中包含iframe的html。)
<iframe id="serviceFrameSend" src="../test.html" width="1000" height="1000" frameborder="0">
如果test.html
位于主页的父目录中,则可以使用它,只要它不超出Web服务器的“根”目录即可。
<iframe id="serviceFrameSend" src="../test/test.html" width="1000" height="1000" frameborder="0">
如果test.html
位于主页的兄弟目录中,则可以使用此选项,例如,当主页为path/views/test/test.html
时为path/views/main/page.html
。
<iframe id="serviceFrameSend" src="https://www.server.com/test/test.html" width="1000" height="1000" frameborder="0">
或者,您始终可以根据absolute path的完整网址使用test.html
。
您将必须在服务器上的公共目录中放置“ test.html”文件。否则,使“测试”目录可公开访问。
您将必须使用服务器端语言,例如PHP,ASP.NET,node.js等,并创建一个“代理”,它将获得所需的文件作为参数,读取服务器上的文件,并发送其内容。 >
例如,在ASP.NET中,您可以拥有这样的代码:
Download.aspx
<script language="C#" runat="server"> void Page_Load(object sender, EventArgs e) { int id; if (!Int32.TryParse(Request.QueryString["id"], out id)) { Label1.Text = "Missing or invalid ID"; return; } string filePath = ""; switch (id) { case 1: filePath = "c:\\test\\test.html"; break; } if (filePath.Length == 0) { Label1.Text = "ID " + id + " does not exist"; return; } if (!System.IO.File.Exists(filePath)) { Label1.Text = "Requested file '" + filePath + "' does not exist"; return; } System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath); Response.Clear(); Response.WriteFile(fileInfo.FullName); Response.Flush(); Response.End(); } </script> <!DOCTYPE html> <html> <body> <form id="form1" runat="server"> <asp:Label ID="Label1" runat="server"></asp:Label> </form> </body> </html>
然后有了这样的iframe:
<iframe id="serviceFrameSend" src="Download.aspx?id=1" width="1000" height="1000" frameborder="0"></iframe>
您无法像c:一样从PC加载...。您只能从服务器加载文件。如果此html文件和test.html文件位于服务器上的同一目录中,请轻松加载test.html;如果它位于另一个目录中,则使用目录名称,例如test / test.html