我正在开发一个视频上传模块,它最终将所有用户上传的视频存储在 youtube 上(使用 youtube api)。
我想在用户单击上传按钮后立即显示进度条并继续显示直到视频上传。
我通常知道这是使用 .net 中的 ajax 工具包实现的,但由于我使用的是文件上传控件,因此它与 ajax 工具包不兼容。
请建议我如何实现这一目标。
我正在开发一个视频上传模块,它最终将所有用户上传的视频存储在 youtube 上(使用 youtube api)。
我想在用户单击上传按钮后立即显示进度条并继续显示直到视频上传。
我通常知道这是使用 .net 中的 ajax 工具包实现的,但由于我使用的是文件上传控件,因此它与 ajax 工具包不兼容。
请建议我如何实现这一目标。
您无法显示文件上传的实际进度。但是您可以使用 javascript 显示隐藏的动画“加载”图像。它会在表单(连同文件)提交到服务器时显示。
html:
<img id="loading_img" style="Display: None" src="loading.gif" />
Javascript:
$('#Form1').submit(function() {
$('#loading_img').show(); // Show image
return true; // Proceed with postback
});
不久前,我需要准确地说,我首先搜索了一个 javascript 解决方案,但最终找到了一个 Flash 上传器。如果您通过XMLHttpRequest
Javascript 中的 API 上传,某些浏览器(Chrome、Firefox)会报告上传状态,所以它肯定可以完成,但是这种方法(或者在我检查它的时候)不是跨浏览器。您可以查看此示例以及此问答。
如果这不能跨浏览器工作,您可以使用现有的 Flash 文件上传器或使用 Flash 或 Silverlight 创建您自己的文件上传器。当然,这会使您的站点依赖于 Flash 或 Silverlight。 例如,这是一个使用 Flash 的项目。
最快的方法是购买 3rd 方控件,例如 Telerik Upload 控件可以做到这一点(无闪存)
http://demos.telerik.com/aspnet-ajax/upload/examples/customizingraduploadui/defaultcs.aspx