0

asp.net ファイル アップロード コントロールを使用しています

としてサーバーに画像をアップロードしていますUserID+"ProfilePic"。アップロード後、コードビハインドを介してこれに画像srcを設定しています

string FolderPath = System.Configuration.ConfigurationManager.AppSettings["PATH"].ToString();
string assoid = HttpContext.Current.Session["strAssociateId"].ToString()+"ProfilePic.jpg";
if (FileUpload1.HasFile)
{
    try
    {
        string fileName = FileUpload1.FileName;
        FileUpload1.PostedFile.SaveAs(FolderPath +assoid);
        string imagePath = "serverpath" +assoid;
        face_crop_original.Src = imagePath;  //Problem is here
    }
}

ここで画像がアップロードされますが、設定するimage.Src=xxxxとキャッシュから古い画像が取得されます!! 助けてください。

4

2 に答える 2

1
public static string VersionCssUrl(string url)
    {
        // Get physical path.
        try
        {
            var path = HttpContext.Current.Server.MapPath(url);
            return url + "?v=" + String.Format(File.GetLastWriteTime(path).ToString("MMddyyhhmmss"));
        }
        catch
        {
            return url;
        }
    }

コードは次のようになります

<img src="<%= VersionCssUrl("your src".ToString()) %>" />

さて、何が起こるかを知っている説明は、これが毎回ファイルを要求することですが、ファイルの変更日をチェックするので、変更されていない場合は以前のものが確実にキャッシュからロードされます.....

ファイルが変更されている場合、新しいファイルが自動的にロードされます。これはすべて日時に依存します.....

これがあなたの助けになることを願っています... :)

于 2013-11-09T11:42:37.713 に答える
1

私のために働いている簡単な解決策を見つけました:)

ここでソースを確認できます

私がしたことはdatetime.now、@dholakiyaankitが提案したように別の場所に添付したことです

 string fileName = FileUpload1.FileName;
                    FileUpload1.PostedFile.SaveAs(FolderPath +assoid);
                    string imagePath = "server path" +assoid;
                    face_crop_original.Src = imagePath+"?"+DateTime.Now;

注: ここで私の imagepath 変数は「xxxxxx.jpg」になるので、

 face_crop_original.Src = imagePath+"?"+DateTime.Now;

になります"http://xxxxxxxx.com/imagename.jpg?Randomnumber"

これにより、同じ名前 (USERID+"Profilepic") の画像をアップロードできるようになりました。名前が同じになり、サーバーで置き換えられるため、古いファイルを削除するためのコードを記述する必要はありません。

于 2013-11-09T11:49:51.397 に答える