我正在开发用户个人资料图片控件。此控件允许用户为其配置文件上传自己的自定义图像,该图像显示为隐藏在页面一角的小缩略图。我正在使用FancyBox来显示完整尺寸的图像。 这是问题,当上传新图像时,FancyBox会显示与原始图像尺寸相同的新图像!
如果每个图片上传都会生成新的网址,但我根据用户的ID获取了我的图片网址,则此问题不存在。例如:url =“../ profileImages / user_3.jpg” 换句话说,上传新的配置文件图像会覆盖当前图像。
对于那里的一些专家,我尝试在网址中添加一个查询参数,例如:“../ profileofImages / user_3.jpg?value = 123”,它不起作用。
在没有进入我正在使用的所有代码的情况下,我创建了一个完全展示问题的简单示例。
<html>
<head runat="server">
<title></title>
<script src="../jquery-1.6.2.js" type="text/javascript"></script>
<script src="../fancybox-1.3.4.js" type="text/javascript"></script>
<script src="../fancybox-1.3.4.pack.js" type="text/javascript"></script>
<link href="../jquery.fancybox-1.3.4.css" rel="stylesheet" type="text/css" />
<script>
$(document).ready(function()
{
$("#example").fancybox()
});
</script>
</head>
<body runat="server">
<div>
<a id="example" href="TestImg.jpg"><img alt="example" src="TestImgThumb.jpg" /></a>
</div>
</body>
</html>
创建两个图像。最好是人们所以你可以看到规模伸展问题更加清晰。 确保第一张图像明显大于第一张图像,并将其命名为:TestImg.jpg
在浏览器中打开网页,通过FancyBox查看图片。
现在删除第一张图片并将第二张(较小的)图片重命名为:TestImg.jpg
再次打开网页以查看问题。超链接中的图像是正常的,但FancyBox渲染的图像会拉伸到原始图像的尺寸。
如果您需要进一步澄清任何事情,我将很乐意帮忙。
答案 0 :(得分:0)
我通常会为缩略图创建时间标记图像。例如,在您的情况下,[UserId_yyyyMMdd_hh_mm_ss] .jpg然后将其存储在我的数据库中。我还会覆盖文件系统上的原始文件,以便您以后可以对其进行操作,但是您要提供的图像是您使用唯一名称存储在数据库中的图像。
您似乎希望避免将图像URL(或图像)存储在数据库中,这就是您遇到缓存问题的原因。仅仅使用用户ID对于这些类型的图像并不是一个好主意,因为您将遇到缓存问题。