Ich versuche, ein Bild aus einer API zu ziehen und über die File()
Methode zum DOM zurückzukehren.Konvertieren von IRestResponse in "image/jpg" Datei
Hier ist, was ich bisher haben ..
HomeController.cs
:
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult ImageFromPath()
{
var client = new RestClient("http://{{MYIPADDRESS}}/cgi-bin/snapshot.cgi?channel0=");
var request = new RestRequest(Method.GET);
request.AddHeader("postman-token", "random-postman-token");
request.AddHeader("cache-control", "no-cache");
request.AddHeader("authorization", "Digest username=\"MYUSERNAME\", realm=\"MYENCRYPTEDPASS\", nonce=\"LONGSTRING\", uri=\"/cgi-bin/snapshot.cgi?channel0\", response=\"RESPONSESTRING\", opaque=\"\"");
IRestResponse response = client.Execute(request);(response.RawBytes);
return File(response, "image/jpg");
}
}
Das einzige Problem hier ist, dass der Fehler auf der return-Anweisung, response
zeigt
nicht konvertieren kann aus 'RestSharp.IRestResponse' bis 'Byte []'
Als ich das Bild aus dem lokalen Dateisystem zieht, war es einfacher und arbeitete, hier wurde mein Arbeits Code für HomeController.cs
public ActionResult ImageFromPath(string path)
{
var ms = new MemoryStream();
using (Bitmap bitmap = new Bitmap(path))
{
var height = bitmap.Size.Height;
var width = bitmap.Size.Width;
bitmap.Save(ms, ImageFormat.Jpeg);
}
ms.Position = 0;
return File(ms, "image/jpg");
}
Hier ist, wie ich es in meinem vorderen Ende ziehen (Index.cshtml
) :
<img src="@Url.Action("ImageFromPath", new { path = Request.MapPath("~/img/1.jpg") })" />
Diese Zeile sieht für mich aus ... 'IRestResponse response = client.Execute (Anfrage); (response.Content);' – maccettura
Auch Sie wahrscheinlich 'wollen .RawBytes' statt' .Content' – maccettura
@maccettura ja , aber das Hauptproblem, das ich habe, ist, wie man alles zurückgibt. Der Versuch, als Datei zurückzukehren, bereitet mir Probleme. Zumindest derzeit. – NoReceipt4Panda