我正在使用asp.net文件上传控件
我将图像上传到服务器UserID+"ProfilePic"
。
上传后我通过
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
时,它会从缓存中获取旧图像!请帮忙。
答案 0 :(得分: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()) %>" />
现在,解释你知道会发生什么,这会是每次都会请求文件,但它会检查你的文件的修改日期,所以如果没有,你将拥有前一个文件更改肯定从缓存中加载 .....
如果您的文件已更改,会自动加载新文件,这一切都取决于您的日期时间......
我希望这可以帮助你... ...)
答案 1 :(得分:0)
我找到了一个适合我的简单解决方案:)
您可以查看来源here
我所做的是将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”),并且我不需要编写用于删除旧文件的代码,因为名称将相同并且将在服务器中替换它!