APIから画像を取得し、File()
メソッドを使用してDOMに戻そうとしています。IRestResponseを「image/jpg」ファイルに変換する
ここで私がこれまで持っているものだが...
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");
}
}
ここでの唯一の問題は、return文のエラー、response
ショー
ここから変換することができないということです'RestSharp.IRestResponse'から 'byte []'へ
私はローカルファイルシステムから画像を引っ張ったときに、それは簡単だったと働いていたが、私の作業コードは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");
}
のためだったここで私は私のフロントエンド(Index.cshtml
)でそれを引っ張った方法です:
<img src="@Url.Action("ImageFromPath", new { path = Request.MapPath("~/img/1.jpg") })" />
この行は私には見えません... 'IRestResponse response = client.Execute(request);(response.Content);' – maccettura
また、 '.Content'の代わりに' .RawBytes'が必要でしょう – maccettura
@maccettura yesしかし、私が持っている主な問題は、すべてを返す方法です。 Fileとして返そうとすると問題が発生します。少なくとも、現在。 – NoReceipt4Panda