Comment puis-je appeler une page aspx et de l'avoir de retour d'une image?
******L'édition de post pour les nouveaux code de l'échantillon sur la base des observations*******
Donc, pour être clair, j'ai deux fichiers. Le premier fichier est appelé FinalImage.aspx et voici le code de la page:
<html>
<body>
<img src="newpage.aspx" />
</body>
</html>
newpage.aspx ayant le code suivant, basé sur Jason de l'échantillon dans les commentaires ci-dessous:
<%@ Page Language="C#" %>
<script runat="server" language="c#">
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "image/png";
byte[] data = System.IO.File.ReadAllBytes("http://mystatus.skype.com/smallclassic/eric-greenberg");
Response.OutputStream.Write(data, 0, data.Length);
Response.OutputStream.Flush();
Response.End();
}
</script>
Si je l'appelle FinalImage.aspx, je vois une image brisée.
Si je l'appelle newpage.aspx directement, je reçois un "URI Formats ne sont pas pris en charge erreur"
Je pense à ses proches, si.
Aussi, simplement pour toute personne lisant cela, cette solution est nécessaire pour contourner le fait que skype n'est pas une option https pour son skype boutons qui indiquent le statut de l'utilisateur de skype. La création de cette page proxy permettra de faire ce travail sans causer un "mixte" alerte de sécurité dans le navigateur.
- Je ne pense pas que
File.ReadAllBytes
soutien de format d'URI, c'est uniquement pour les fichiers locaux. Vous devez créer un WebRequest et télécharger les octets.
Vous devez vous connecter pour publier un commentaire.
Donc, ici, c'est la finale du code du travail: merci à tous pour votre aide, le suivi de cette baisse peu à peu (façon de parler...)
Juste pour élargir sur Aliostad réponse, voici un morceau de code qui pourrait vous aider:
Ne sais pas si ce qui précède est correct à 100%, mais j'ai fait d'utiliser quelque chose de similaire récemment sur un projet de retour des images à partir d'une page aspx. Malheureusement, je n'ai pas le code en face de moi, maintenant.
À se développer (sur Jason réponse), vous n'aurez pas envie de lire le flux de réponse dans un StreamReader (tant que le résultat n'est pas du texte). Ce que vous pouvez faire l'utilisation la page aspx, comme la src de votre image sur la page qui en a besoin. Par exemple:
Parce Que MyDynamicImage.aspx renvoie une image que sa réponse, elle peut être traitée comme une image (comme si vous ont été pointant vers un statique .jpg, par exemple).
Vous devez définir le type de contenu "image/jpg" ou image pertinente MIME.
Vous pouvez utiliser le code affiché ci-dessus dans la méthode ProcessRequest d'une classe qui implémente IHttpHandler. Ce sont un peu plus léger que de le faire avec une Page que vous permettra d'éviter le cycle de vie de page.
Il est un exemple à http://wiki.asp.net/page.aspx/687/http-handlers-to-handle-images/. C'est un peu plus compliqué que ce que vous avez besoin, mais vous devriez être capable de le modifier selon vos besoins.