【发布时间】:2011-06-01 14:46:54
【问题描述】:
我正在将图像上传到 Blob 商店。我已经复制了示例 从 here。
我遇到的唯一问题是:如果我用表单加载页面,并且 不立即提交图像。 URL 可能会过期,我什么时候过期 尝试加载图像我得到一个错误页面。我怎样才能检查是否 URL 已过期并在用户不知情的情况下刷新 URL?
【问题讨论】:
标签: java google-app-engine blobstore
我正在将图像上传到 Blob 商店。我已经复制了示例 从 here。
我遇到的唯一问题是:如果我用表单加载页面,并且 不立即提交图像。 URL 可能会过期,我什么时候过期 尝试加载图像我得到一个错误页面。我怎样才能检查是否 URL 已过期并在用户不知情的情况下刷新 URL?
【问题讨论】:
标签: java google-app-engine blobstore
似乎解决方法是在用户提交表单时获取 Blob URL。这样您就知道 URL 不会过期。
使用 JQuery:
$.get("/blobUrl", function(data){
$("#changeProfilePictureForm").attr('action', data);
$("#changeProfilePictureForm").submit();
$("#changeProfilePictureForm").hide();
$("#loadingImg").show();
});
【讨论】:
我对此不是 100% 确定,但我看到网站刷新页面的某些部分而没有真正刷新页面。 Twitter 是嵌套示例之一,它将最新内容加载到页面顶部而不刷新它。
According to this website你可以通过xml和php获取动态内容,无需刷新页面。因此,如果用于上传图片的表单有时间限制,您可以尝试这样的功能来刷新表单,而无需实际刷新页面。
现在,如果 url 的时间有限,或者整个页面都有 cookie,您需要找到一种方法来更新或扩展 cookie,API 可能会或可能不会根据谷歌如何做设置它。
我想如果最坏的情况发生了,您可以尝试通过 html 函数在页面上自动刷新,但如果此人正在上传图片并且页面刷新,他们可能会丢失所有进度。
很抱歉,如果这不是最有帮助的事情,但我想我会尝试就如何让球滚动提供一些意见。
【讨论】:
多久后 URL 就会过期?您怎么知道是过期导致了您的问题?我没有看到 Google API 文档提到这一点。另外,抛出什么异常。您能否在服务器端捕获它并使用新生成的上传 URL 将用户发送回同一页面。我知道这不能满足您对用户不知道发生这种情况的要求。
我想一种选择是找出 URL 过期多长时间,然后使用 JavaScript 在超时附近异步调用您的服务器,检索新的上传 URL 并更改 DOM 中的 URL。
但是,捕获异常并重新呈现的解决方案听起来最好,因为我认为 URL 应该仅在用户空闲相当长的时间后才过期?
【讨论】: