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