我使用YouTube的API直接从浏览器上传视频到他们的服务器。他们的api文档使用一个标准的html表单来上传视频。这个过程是有效的,但是我想为上传添加一个进度条。这是可能的与一个旧的学校形式上传或有一种方法来做同样的异步?我使用asp.net mvcapi。谢谢!
<form action="URL?nexturl=http%3A%2F%2Fwww.example.com" method="post"
enctype="multipart/form-data" onsubmit="return checkForFile();">
<input id="file" type="file" name="file"/>
<div id="errMsg" style="display:none;color:red">
You need to specify a file.
</div>
<input type="hidden" name="token" value="TOKEN"/>
<input type="submit" value="go" />
</form>
不,不可能在标准上传时显示进度条。一旦提交了表单,从技术上讲,您就已经退出了页面。浏览器只是保留它,直到它从服务器接收到要加载的新内容,这在上传完成并且表单完全发布之前不会发生。与此同时,你的页面基本上是死的。
在过去,人们通过Flash或Java控件实现了这一点,但所做的只是允许异步文件传输,因为仅仅使用普通的HTML和JavaScript无法做到这一点。
使用HTML5, AJAX文件上传现在是可能的。请参阅http://www.sitepoint.com/html5-javascript-file-upload-progress-bar/获取快速介绍。请注意,这只支持现代浏览器(即不支持IE6-9)。有一些备用方案可以使用iframe来模拟异步上传。去谷歌一下吧