停止Blob URL过期

时间:2011-06-01 14:46:54

标签: java google-app-engine blobstore

我正在将图片上传到blob商店。我复制了这个例子 从 here

我遇到的唯一问题是:如果我使用表单加载页面,和 不要立即提交图像。 URL可以过期,当我这样做 尝试加载图像我得到一个错误页面。我怎样才能查看是否 URL已过期并刷新URL而用户不知道?

3 个答案:

答案 0 :(得分:4)

当用户提交表单时,似乎可以获得Blob URL。这样您就知道URL无法过期。

使用JQuery:

$.get("/blobUrl", function(data){
    $("#changeProfilePictureForm").attr('action', data);
    $("#changeProfilePictureForm").submit();
    $("#changeProfilePictureForm").hide();
    $("#loadingImg").show();
}); 

答案 1 :(得分:0)

网址到期前有多长时间,你怎么知道这是一个到期导致你的问题?我没有看到Google API文档提到这一点。此外,抛出什么异常。你可以抓住它的服务器端并使用新生成的上传URL将用户发回同一页面。我知道这不符合您要求用户不知道发生这种情况的要求。

我想一个选项是找出URL过期的时间,然后使用JavaScript在超时附近异步调用服务器,检索新的上传URL并更改DOM中的URL。

然而,捕获异常和重新渲染声音的解决方案最好,因为我想URL只应在用户闲置了相当长的时间之后才会过期?

答案 2 :(得分:0)

我对此并不是100%肯定,但我看到网站刷新页面的部分而不实际刷新页面。 Twitter是一个嵌套示例,它将最新内容加载到页面顶部而不刷新它。

According to this website您可以通过xml和php获取动态内容而无需刷新页面。因此,如果上传图像的表单有时间限制,您可以尝试使用这样的函数刷新表单而不实际刷新页面。

现在,如果网址时间有限,或者网页上的所有网页都有Cookie,那么您需要找出一种方法来续订或扩展API可能会或可能不允许您根据Google的方式进行操作设置了这个。

我想如果最坏的情况发生,你可以通过html函数在页面上尝试自动刷新,但如果这个人正在上传图片并且页面刷新,他们可能会失去他们所有的进展。

对不起,如果这不是最有帮助的事情,但我想我会尝试给出一些关于如何让球滚动的输入。