我正在将图片上传到blob商店。我复制了这个例子 从 here。
我遇到的唯一问题是:如果我使用表单加载页面,和 不要立即提交图像。 URL可以过期,当我这样做 尝试加载图像我得到一个错误页面。我怎样才能查看是否 URL已过期并刷新URL而用户不知道?
答案 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函数在页面上尝试自动刷新,但如果这个人正在上传图片并且页面刷新,他们可能会失去他们所有的进展。
对不起,如果这不是最有帮助的事情,但我想我会尝试给出一些关于如何让球滚动的输入。