-1

我让用户有机会用他选择的大图片装饰他的主页。提交后:

  • 1新上传的图片被调整大小并重命名(并替换uploads/home目录中的前一张。它被重命名为homepic.jpg,它是同名的=> 中提到的那个css

  • 2图片出现在<div>背景图片为: background-image: url("uploads/home/homepic.jpg");

这种方法的好处是,如果新上传的图片的格式与格式不完全匹配 <div>(太方形或太矩形),这不会导致显示错误:图片底部丢失一条细条或侧面,一点也不打扰。

唯一的问题是 主页需要刷新 2/3/4/5 或 6 次,才能看到新上传的图片出现。(最坏的 chrome:最多 20 次)奇怪的是,当您上传新图片时第二次立即显示。

无论如何,我希望它从一开始就可以工作,而不必依赖用户的手动刷新。

我目前正在使用Wamp。我也尝试添加header("Cache-Control: no-cache");.

我能做些什么来解决这个问题,或者是否有另一种方式来执行我想要的?

4

2 回答 2

1

图片正在浏览器中缓存 - 如果您请求相同的资源(相同的 URL),则不会再次下载

因此,在更改该图像后,请尝试在其地址中添加一些内容,例如获取参数

background-image: url("uploads/home/homepic.jpg?v=3");

现在棘手的部分是 - 该声明存在于您的 CSS 文件中,因此您实际上只有一个选择 - 将该 CSS 声明作为内联移动到该 div

编辑:另一点-如果您想允许用户更改该“主页”,则不应这样处理-每个用户都应该有目录,他们可以在其中存储此类内容-这样您最终会得到“上传/userxxx/home/homepic.jpg?v=1"

于 2013-06-01T16:28:25.313 回答
0

@Ochi,user228395
感谢您的讨论,我找到了一个非常适合我的解决方案。

主页 :

  • <div id="home" style="background-image: url(uploads/home/homepic.jpg);"></div>

页尾:调整大小+插入数据库

  • header('location:index.php?page=uploaded');
    此页面显示“您的图片已成功上传”。
    当用户点击消息或主页按钮时,他将被重定向到主页,并立即显示最新上传的图片。
于 2013-06-01T21:10:05.797 回答