2017-03-05 8 views
0

サーバに画像をアップロードすると、IISのウェブサイトフォルダに正しく保存されます。問題は、コントローラから戻ってきたときに、フォルダに表示されているイメージが置き換えられても、新しいイメージではなく以前のイメージが表示されることです。私はそれがためにキャッシュのかもしれないと思ったとしようとした:アップロードした画像がロードされていません

namespace Web.Controllers 
{ 
    [Authorize] 
    [System.Web.Mvc.OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")] 
    public class EditProfileController : Controller 
    ... 
} 

写真のアップロードは次のように動作します。

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult UploadImage(MyModel profile) 
    { 
    // check if image exists, delete it and save new one 
    ... 
    RedirectToAction("EditView") 
    } 

    public ActionResult EditView() 
    { 
    ViewBag.Image = getProfileImage(); 

    return View(myModel); 
    } 

答えて

1

はい、あなたが正しい、アップロードされた画像は、お使いのブラウザでキャッシュさにまだありました。あなたの解決策の1つは、バージョン管理を実装することでした。あるいは、ブラウザに最新のファイルが確実に届くように、ファイル名のシステムにGUID番号を付けることでした。 、あなたはNoCache命令属性を追加しますが

var strImageFileName= string.Format(@"{0}.txt", Guid.NewGuid()); 

は、まだブラウザが古いファイルを取得する:あなたがこれを行うことができ、ファイルの後ろにあなたのコードで

<img alt="Image" src="@href("~/Uploads/" + strImageFileName + Version)" 

これは一例ですおそらく30分以上更新されるので、新しいファイルを読み込むために別のファイル名が必要になります。

関連する問題