可以检查.submit()是否完成。我不能用.put()

时间:2013-01-30 02:28:07

标签: php jquery amazon-s3 amazon

我通过直接提交到存储桶网址直接上传到Amazon S3。

页面被嘲笑如下:

<div id="one">
    <upload image form>
</div>

<div id="two>
    <information form>
</div>

默认隐藏Div“two”。当用户以上传图片形式推送提交时,会调用.submit()挂钩并隐藏div。显示Div 2,用户输入有关正在上传的图像的其他信息。

我的问题是,如果上传的图片很大并且取决于连接,则上传可能需要一分钟或更长时间,因此如果用户在上传完成之前完成第二个表单并提交它,那么上传将被切断

亚马逊允许您重定向到一个页面,所以我重定向到PHP_SELF,所以当上传完成时,用户知道没有区别。

所以我的问题是,在上传完成之前,是否可以检测上传进度或禁用div 2中的提交按钮。

我想支持大多数浏览器,所以CORS / .put()对我来说不是一个真正的选择。

我也喜欢这样一个事实:我正在直接推动亚马逊并跳过中间人。

我试过了:

isset($_POST)

检测上传在重定向上完成的时间,但它永远不会被调用,我不知道为什么。

浏览器显示上传百分比(状态栏)有没有办法挂钩?

1 个答案:

答案 0 :(得分:0)

对于可用性,如果

,那就太好了
  • 用户可以立即输入图片信息
  • 查看上传进度指示器
  • 不需要为一个信息单元提交两个表格

如果使用jquery上传图像,则可以配置回调函数,然后自动提交数据表单。

删除其中一个提交按钮,添加一个点击事件处理程序,而不是真正提交表单。

此事件处理程序

  • 评估表格输入
  • 上传文件
  • 显示进度(可以只是'上传待处理...')
  • 定义上传完成的回调。

然后回调只需要提交第二个表单