目前有两个项目 xxxMobile是用移动端访问xxxWeb 则是用PC端访问, 现在我在移动端上传的图片,在PC端不更新,
用的同一个数据库,并且为了避免文件的冗余 每次都 给他同样的路径名替换掉之前的文件 上传方式则是用的FileUpload 服务器控件,
sql语句也执行成功,为什么PC端图片不能更新?
同时移动端其他页面 用到这个图片的地方 都没有更新
(类似一个更换头像,想做到 移动或者PC端任意一端更换头像,在其他位置能同步刷新)
希望有好心人指点一二,稍后我会将手机端上传图片的代码贴上。
前台
<li>
<label class="piclabel">
头像</label>
<div class="imgdiv" id="imgdiv">
<img src="<%=uimge %>" id="imgShow">
<asp:FileUpload ID="up_img" runat="server" />
</div>
<asp:HiddenField ID="imgUrl" runat="server" />
</li>
后台
if (up_img.HasFile)
{
if (imgUrl.Value != "")
{
//给一个新的路径名
newName = io.UploadFileName(up_img, "/upimages", Path.GetFileName(imgUrl.Value));
}
else
{
newName = io.UploadFileName(up_img, "/upimages");
}
}
else
{
if (imgUrl.Value != "")
{
newName = imgUrl.Value;
}
}
因为客户端浏览器有缓存,相同的图片文件(判断图片url)不会重新下载。
你可以在每次上传后数据库中记下一个版本号或者上传时间,然后在页面中显示图片时url加上版本号或上传时间作为后缀。
不同后缀会被认为时不同的文件,浏览器就会重新下载。
比如你的头像图片,通过后缀会被区分成不同的文件进行下载。
http://noavatar.csdn.net/4/B/E/2_qq_36165603.jpg?v1
http://noavatar.csdn.net/4/B/E/2_qq_36165603.jpg?v2
http://noavatar.csdn.net/4/B/E/2_qq_36165603.jpg?v3
...
其实我就是想做一个 跨域传图, 今天尝试到了jsonp 但是发现并不理想,目前再找一种 跨域传图的方式
目前找到CORS跨域共享,但是实现还在进一步探索中