C# 如何避免从缓存加载图像
我正在使用asp.net文件上载控件 我正在以C# 如何避免从缓存加载图像,c#,asp.net,file-upload,C#,Asp.net,File Upload,我正在使用asp.net文件上载控件 我正在以UserID+“ProfilePic”的形式将图像上载到服务器。 上传后,我将通过代码隐藏将图像src设置为此 string FolderPath = System.Configuration.ConfigurationManager.AppSettings["PATH"].ToString(); string assoid = HttpContext.Current.Session["strAssociateId"].ToString()+"Pro
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
时,它从缓存中获取旧图像!!请帮忙
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()) %>" />
“/>
现在,解释你知道会发生什么,每次都会请求文件,但它会检查文件的修改日期,因此如果没有更改,你将拥有上一个文件,它肯定会从缓存加载
如果您的文件已更改,它将自动加载新文件这一切取决于您的日期时间
我希望这将有助于您了解……:)我找到了一个简单的解决方案,它对我很有效:) 您可以检查源代码 我所做的是按照@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”,所以
将是”http://xxxxxxxx.com/imagename.jpg?Randomnumber“
这使我能够上载具有相同名称(USERID+“Profilepic”)的图像,并且我不需要编写代码来删除旧文件,因为名称将相同,并且将在服务器中被替换!使用FileUpload1.PostedFile.SaveAs(FolderPath+assoid+datetime.now);它会要求将新图像上传到您的服务器,但每次都会将新图像上传到服务器!!我想用新图像替换旧图像:(我们是否可以指示浏览器不要使用缓存?!您正在用新名称替换新名称您可以删除order one@vignesh并添加新名称将新图像保存到文件夹中,然后您将在前端有新图像谢谢@dholakiyaankit:)我浏览并找到了一种更简单的方法!!:)我已经发布了一个答案,请检查一下!:)同样的逻辑已经发布在我的答案中
face_crop_original.Src = imagePath+"?"+DateTime.Now;