我通过直接提交到存储桶 URL 直接上传到 Amazon S3。
页面模拟如下:
<div id="one">
<upload image form>
</div>
<div id="two>
<information form>
</div>
div "two" 默认是隐藏的。当用户以上传图片的形式推送提交时,会调用 .submit() 钩子并隐藏 div 一。显示第二部分,用户输入有关正在上传的图像的附加信息。
但是我的问题是,如果要上传的图像很大并且取决于连接,上传可能需要一分钟或更长时间,所以如果用户在上传完成并提交之前完成第二个表单,那么上传就会被切断。
亚马逊允许你重定向到一个页面,所以我重定向到 PHP_SELF,所以当上传完成时,用户不知道有什么区别。
所以我的问题是是否可以检测上传进度或禁用 div 2 中的提交按钮,直到上传完成。
我想支持大多数浏览器,所以 CORS/.put() 对我来说并不是一个真正的选择。
我也喜欢我直接推向亚马逊并跳过中间人的事实。
我试过了:
isset($_POST)
检测上传何时完成重定向,但它从未被调用,我不知道为什么。
浏览器显示上传百分比(状态栏)有没有办法挂钩?