ImageResizer(ImageResizing dot netから)を使用したいと思います。私はImageResizer for MVCをNuGet経由でインストールしました。しかし、私は例から、次のコードを使用して行くとき:HttpContext.CurrentがMVC 4プロジェクトで解決しない
//Loop through each uploaded file
foreach (string fileKey in HttpContext.Current.Request.Files.Keys)
{
HttpPostedFile file = HttpContext.Current.Request.Files[fileKey];
if (file.ContentLength <= 0) continue; //Skip unused file controls.
//The resizing settings can specify any of 30 commands.. See http://imageresizing.net for details.
//Destination paths can have variables like <guid> and <ext>, or
//even a santizied version of the original filename, like <filename:A-Za-z0-9>
ImageResizer.ImageJob i = new ImageResizer.ImageJob(file, "~/uploads/<guid>.<ext>", new ImageResizer.ResizeSettings(
"width=2000;height=2000;format=jpg;mode=max"));
i.CreateParentDirectory = true; //Auto-create the uploads directory.
i.Build();
}
は「HttpContext.Current.Request.Files.Keysを」foreachの中に解決されていませんか?私は正しい使い方をしており、Visual Studioは「解決」オプションを提供していません。
HttpContext.Currentは何に設定されていますか(「解決」しますか)、HttpContext.Current.Request.Files.Keysは表示されません。このコードはあなたのコントローラ、または別のクラスからですか?これが別のクラスのメソッドから来た場合は、何らかの形でHttpContext.Currentを渡すようにしてください。呼び出すメソッドのパラメータとして、またはメソッドを呼び出す前にこの値を受け入れるpublicメンバ(HttpContext型の)を持っています。 – Floremin
HttpContext.Currentはアプリケーションにとってグローバルではありません。これは要求に対応するアクションとビューに設定されますが、要求サイクルの外(モデル、ユーティリティクラスなどのようなもの)では存在しません。必要な場合は、@Floreminが示すように、アクションまたはビューからそれを渡す必要があります。 –
OK - はい、これはコントローラのアクション内にあります。 HttpContextは解決しますが、Currentは解決しません。私は静的なCurrentなしでHttpContext.Request.Filesを見つけると、これはうまくいくようです。なぜ静的Currentがそこにないのか分かりません。コントローラーのコンテキストからアクセスできないのでしょうか?うまくいけば、静的なものを使用していないものが「欠けている」わけではない。ありがとう! – Nick