我正在将图片上传到blob商店。我已经从here复制了这个示例。
我遇到的唯一问题是:如果我用表单加载页面,而不是立即提交图像。URL可能会过期,当我尝试加载图像时,会得到一个错误页面。如何检查URL是否已过期并在用户不知道的情况下刷新URL?
发布于 2011-06-01 23:59:13
似乎解决办法是在用户提交表单时获取Blob URL。这样,您就知道URL不会过期。
使用JQuery:
$.get("/blobUrl", function(data){
$("#changeProfilePictureForm").attr('action', data);
$("#changeProfilePictureForm").submit();
$("#changeProfilePictureForm").hide();
$("#loadingImg").show();
});
发布于 2011-06-01 22:55:18
距离URL过期还有多长时间?您如何知道是过期导致了您的问题?我没有看到Google API文档提到这一点。还有,抛出了什么异常。您是否可以捕获它的服务器端,并将用户返回到同一页,与新生成的上传URL。我知道这不符合您的要求,即用户不知道发生了这种情况。
我猜一种选择是找出距离URL过期还有多长时间,然后使用JavaScript在超时附近异步调用您的服务器,检索新的上传URL并更改DOM中的URL。
然而,捕获异常并重新渲染的解决方案听起来最好,因为我认为URL应该只有在用户空闲了相当长的时间后才会过期?
发布于 2011-06-01 22:59:21
我不是100%确定这一点,但我见过网站刷新页面的部分,但实际上并没有刷新页面。Twitter是最典型的例子之一,它将最新的内容加载到页面的顶部,而不刷新页面。
According to this website你可以在不刷新页面的情况下通过xml和php获取动态内容。因此,如果用于上传图像的表单有时间限制,您可以尝试使用类似这样的函数来刷新表单,而无需实际刷新页面。
现在,如果url有一个有限的时间,或者整个页面都有一个cookie,你需要想出一种方法来续订或扩展cookie,API可能允许也可能不允许,这是基于google的设置。
我猜如果最坏的情况发生,你可以通过html函数在页面上尝试自动刷新,但是如果用户正在上传图像,而页面正在刷新,他们可能会失去所有的进度。
很抱歉,如果这不是最有帮助的事情,但我想我会尝试提供一些输入,也许是如何让球滚动。
https://stackoverflow.com/questions/6203089
复制相似问题