可以上传表单提交等待文件处理完成
Can upload form submit wait for file processing complete?
上传表单提交可以等待文件处理完成吗?
我正在使用web2py及其sqlform上传视频,同时将视频转换为flv。上传和编码的进度都由使用此代码(http://www.web2pyslices.com/slice/show/1337/upload-progress-in-web2py)的两个进度条显示。一旦检测到视频上传,编码就会从后端开始。编码和转换完成后,用户可以播放转换后的视频。
问题是上传完成但编码不完整时接受的表单。我尝试了event.preventDefault(),但进度条没有显示。似乎在上传完成时无法停止默认提交。如何防止提交并等待转换过程完成,然后进行提交?谢谢!
您可以在不执行数据库插入的情况下验证表单(请参阅此处)。然后在验证后,运行循环以持续检查编码是否完成,编码完成后,执行数据库插入并返回。
def video_upload():
upload_form = SQLFORM(db.encodeupload)
if upload_form.validate():
session._unlock(response)
[while loop checking to see if file encoding is complete]
db.encodeupload.insert(**db.encodeupload._filter_fields(form.vars))
[rest of code]
在 while 循环中,您还可以检查编码过程中的错误,并在这种情况下中止插入(并返回错误消息)。
请注意,session._unlock(response)
在进入循环之前解锁会话文件 - 这是必需的,这样锁定的会话文件就不会阻止页面为更新编码进度条而发出的 Ajax 请求。在 Ajax 请求调用的控制器操作中,还应添加session.forget(response)
以便操作不会锁定或写入会话。
相关文章:
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 导入jQuery脚本获胜'我不处理html文件
- 生成pdf或其他非html文件时的错误处理
- 处理一个JSON文件;完全相同的副本不是
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- Grunt-将多个文件最小化/处理为一个文件
- 我如何处理文件上传
- 无需刷新即可进行简单的客户端文件处理
- Javascript 文件处理
- 浏览器和大量的图像文件处理
- 简单客户端应用程序中的文件处理
- Casper JS数据到CSV文件处理逗号
- 可以上传表单提交等待文件处理完成
- JavaScript中的文件处理
- 如何使用javascript打开特定的文件夹,任何可能使用这里的文件处理程序
- 如何在blueimp上使用自己的文件处理程序jQuery文件上传
- 如何在nodejs中存储两个文件处理程序
- nodejs最安全的路径和文件处理
- 文件处理 - 在 javascript 中比较文本文件中的内容