我正在建立一个ASP.NET网站,在那里用户可以上传他们的个人资料图片。我将这些图像存储在App_Data文件夹下,并将文件路径存储在Users表中。
那么,问题是我应该如何更新用户的个人资料图片?我的意思是,如果我覆盖了之前的文件,同时收到获取图片的请求,会发生什么情况。我应该有一些并发管理吗?我最好的解决方案是为新图像生成一个文件名(数据库中的用户记录也会用这个新路径更新),并将旧路径存储在其他地方,以便以后删除它。这是个好主意吗?
发布于 2013-09-04 01:21:01
我通常在我的案例中做的事情。
来自文件上传控制Fu.SaveAs(Server.MapPath(dbPath));的dbpath= string.Format("~/Uploads/Images/{0}",Guid.NewGuid().ToString().Replace("-",var Uploads string.Format(“~/Uploads/Images/{0}”,Guid.NewGuid().ToString().Replace(“-”,var Uploads control var
如果您想在页面上显示来自数据库的图像,您可以使用
<asp:Image runat="server" id="immm"></asp:Image> , from code behind imm.ImageUrl = dt.Rows[0]["ImagePath"].ToString"2.如果是内部网格/中继器,只需使用<asp:Image runat="server" id="immm" ImageUrl='<%#Eval("ImagePath")%'></asp:Image>
发布于 2014-01-12 04:03:53
不需要生成新的文件名。有一个非常聪明的解决方案。
更改用户表并添加Uploadversion字段。并用上传的文件覆盖相同的文件,只需在Users表中增加一个upload version字段。
当您的客户端请求该文件时,将路径与此版本一起发送。客户端可能会将此版本作为伪querystring添加到您的img元素的src路径中。
<img src="/[image_route]?[version]" />对于ex:
<img src="/images/john_doe/photo?16" />https://stackoverflow.com/questions/18597575
复制相似问题