相关疑难解决方法(0)

在同一个网址刷新图片

我正在访问我的网站上的链接,每次访问时都会提供一个新图像.

我遇到的问题是,如果我尝试在后台加载图像然后更新页面上的图像,图像不会改变 - 虽然它在我重新加载页面时更新.

var newImage = new Image();
newImage.src = "http://localhost/image.jpg";

function updateImage()
{
if(newImage.complete) {
    document.getElementById("theText").src = newImage.src;
    newImage = new Image();
    number++;
    newImage.src = "http://localhost/image/id/image.jpg?time=" + new Date();
}

    setTimeout(updateImage, 1000);
}
Run Code Online (Sandbox Code Playgroud)

FireFox看到它们的标题:

HTTP/1.x 200 OK
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: image/jpeg
Expires: Fri, 30 Oct 1998 14:19:41 GMT
Server: Microsoft-HTTPAPI/1.0
Date: Thu, 02 Jul 2009 23:06:04 GMT
Run Code Online (Sandbox Code Playgroud)

我需要在页面上强制刷新该图像.有任何想法吗?

javascript url refresh image

312
推荐指数
8
解决办法
35万
查看次数

如何强制Web浏览器不缓存图像

背景

我正在为两个无偿网站编写和使用一个非常简单的基于CGI(Perl)的内容管理工具.它为网站管理员提供HTML表单,用于填写字段(日期,地点,标题,描述,链接等)的事件并保存.在该表单上,我允许管理员上传与事件相关的图像.在显示表单的HTML页面上,我还显示了上传图片的预览(HTML img标签).

问题

当管理员想要更改图片时,会发生此问题.他只需点击"浏览"按钮,选择一张新照片然后按确定即可.这很好用.

上传图像后,我的后端CGI处理上传并正确地重新加载表单.

问题是显示的图像没有刷新.即使数据库保存正确的图像,仍会显示旧图像.我已将其缩小到图像在Web浏览器中缓存的事实.如果管理员点击Firefox /资源管理器/ Safari中的RELOAD按钮,则所有内容都会刷新,并且只会显示新图像.

我的解决方案 - 不工作

我试图通过写一个过去很远的日期的HTTP Expires指令来控制缓存.

Expires: Mon, 15 Sep 2003 1:00:00 GMT
Run Code Online (Sandbox Code Playgroud)

请记住,我在管理方面,我并不关心页面是否需要更长时间才能加载,因为它们总是过期.

但是,这也不起作用.

笔记

上传图像时,其文件名不会保留在数据库中.它被重命名为Image.jpg(在使用时简单地说出来).使用新图像替换现有图像时,名称也不会更改.只是图像文件的内容发生了变化.

网络服务器由托管服务/ ISP提供.它使用Apache.

有没有办法强制Web浏览器不缓存此页面中的内容,甚至图像?

我正在使用数据库实际"保存文件名"的选项.这样,如果图像被更改,IMG标签的src也将改变.但是,这需要在整个站点进行大量更改,如果我有更好的解决方案,我宁愿不这样做.此外,如果上传的新图像具有相同的名称(例如图像有点照片并重新上传),这仍然无效.

html caching image image-caching browser-cache

115
推荐指数
8
解决办法
19万
查看次数

直到我刷新页面Spring Mvc才显示上传的图像

我正在使用带有百万美元的spring mvc将图像上传到服务器并在单独的页面"结果"中提交表单后显示它.

问题是在我刷新Spring Tool Suite中的资源文件夹"resources/static/images"然后刷新页面之前,图像不会显示.我修改了eclipse工作区选项以自动刷新并且ide部分已解决,但仍需要刷新结果页面以显示图像

这是控制器代码

@RequestMapping(value = "/save", method = RequestMethod.POST)
public String contentSubmit(@Valid @ModelAttribute ContentEntity cm, BindingResult result,
        @RequestParam("file") MultipartFile file, Model model) {
    if (!file.isEmpty()) {
        try {
            cm.setImgUrl(file.getOriginalFilename());
            byte[] bytes = file.getBytes();
            BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File("src/main/resources/static/images/"+cm.getImgUrl())));
            stream.write(bytes);
            stream.close();
        } catch (Exception e) {
            //return error page
        }
    }

    if (result.hasErrors()) {
        return "cms";
    }

    contentDao.addContent(cm);
    return "view";
}
Run Code Online (Sandbox Code Playgroud)

这是视图代码

<img th:src="@{'images/'+${contentEntity.imgUrl}}" class="image-responsive thumbnail" />
Run Code Online (Sandbox Code Playgroud)

java eclipse spring-mvc image-uploading thymeleaf

7
推荐指数
1
解决办法
2573
查看次数

在Flask中使用相同的文件名渲染动态更改的图像

我有一个烧瓶视图功能如下:

@app.route('/myfunc', methods = ['POST', 'GET'])
def myfunc():
    var = request.form["samplename"]
    selected_ecg=ecg.loc[ecg['Patient ID'].isin([var])]
    selected_ecg = selected_ecg.drop('Patient ID', 1)
    arr = np.array(selected_ecg)
    y = arr.T
    x=np.array(range(1,189))
    plot.plot(x,y)

    #Remove the old file
    os.remove("static\graph.png")
    #Now save the new image file
    plot.savefig("static\graph.png")

    return render_template("outputs.html")
Run Code Online (Sandbox Code Playgroud)

Outputs.html:

<html>
  <head>

  </head>
   <body>
     <h1>Output page</h1>

      <img src="static/graph.png" />

   </body>

</html>
Run Code Online (Sandbox Code Playgroud)

我使用flask视图功能通过outputs.html文件显示图像.这里的问题是,服务的静态图像文件每次都会根据用户输入而不断变化.换句话说,我会根据用户选择的输入覆盖图像文件.

但问题是没有提供更改的图像文件.用于第一次渲染的旧图像文件仅针对用户的每个新输入显示.

我已经提到了有关在烧瓶中提供动态内容的旧帖子.但它们都没有用.

html python flask

5
推荐指数
1
解决办法
711
查看次数