J'ai dans ma page de serveur .html
située sur c:\test\test.html
.
Je souhaite afficher test.html
dans iframe sur la machine cliente, comment puis-je faire cela?
Ce que j'ai essayé:
<iframe id="serviceFrameSend" src="file:///c:\test\test.html" width="1000" height="1000" frameborder="0">
Mais il a trouvé le fichier test.html
sur la machine cliente, comment puis-je m'assurer que le test.html
sera chargé à partir du serveur?
Si ce n'est pas possible, comment puis-je le faire d'une autre manière?
Comme vous avez la page sur le serveur, vous devez utiliser certains de ces exemples:
<iframe id="serviceFrameSend" src="test.html" width="1000" height="1000" frameborder="0">
<iframe id="serviceFrameSend" src="./test.html" width="1000" height="1000" frameborder="0">
Vous devez utiliser ceci, si le test.html
est dans le même répertoire que votre page principale.
<iframe id="serviceFrameSend" src="../test.html" width="1000" height="1000" frameborder="0">
Vous devez utiliser ceci, si le test.html
est dans le répertoire précédent de votre page principale. path/views/test/test.html
et path/views/main/page.html
.
<iframe id="serviceFrameSend" src="www.server.com/test/test.html" width="1000" height="1000" frameborder="0">
Vous devez utiliser ceci, si vous connaissez l'URL pour ouvrir votre test.html
.
Vous devrez utiliser un langage côté serveur tel que PHP, ASP.NET, node.js, etc. et créer un "proxy" qui obtiendra le fichier souhaité en paramètre, lira le fichier sur le serveur et enverra son contenu.
Par exemple, dans ASP.NET, vous pouvez avoir un tel code:
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>
Alors ayez tel iframe:
<iframe id="serviceFrameSend" src="Download.aspx?id=1" width="1000" height="1000" frameborder="0"></iframe>
Vous devrez placer le fichier "test.html" dans le répertoire public sur le serveur. Sinon, rendez le répertoire "test" accessible au public.
Vous ne pouvez pas charger depuis votre PC comme c: ... Vous pouvez uniquement charger un fichier, depuis votre serveur. Si ce fichier html et le fichier test.html se trouvent dans le même répertoire sur votre serveur, chargez-le facilement avec test.html, s'il se trouve dans un autre répertoire, utilisez le nom de répertoire tel que test/test.html