ASP.NET JavaScript无刷新文件上传解决方案

0 下载量 9 浏览量 更新于2024-08-31 收藏 59KB PDF 举报
该资源提供了一个ASP.NET与JavaScript结合实现的无刷新文件上传的实例代码。在传统的ASP.NET中,使用Ajax进行无刷新提交时,FileUpload控件无法直接将文件内容作为字符串传递到JavaScript中。为了实现无刷新文件上传,文章介绍了两种方法。 第一种方法是利用JavaScript中的ADODB.Stream对象,它允许将文件转换为数据流,然后通过JavaScript上传到服务器。这种方法的优势在于能够上传大文件,并且由于是以数据流的形式传输,可以支持断点续传和显示上传进度等功能。然而,这种方法的缺点是需要客户端浏览器具有较高的安全设置,或者安装特定的ActiveX控件。提供的代码包括一个前端HTML页面(upload.html)、一个JavaScript控制器(upload.js)和一个处理后台请求的页面(Accept.aspx及其对应的CS文件)。 在提供的HTML页面(upload.html)中,有一个FileUpload输入框和一个按钮,当用户点击按钮时,会触发JavaScript函数`BeginUpLoadFile`。JavaScript代码(upload.js)部分展示了如何创建和使用ADODB.Stream对象,以及如何初始化和管理上传过程中的变量,如`g_XMLHttp`用于异步请求,`g_Stream`用于处理文件流,`g_SendCount`和`g_TotalCount`追踪已发送和总文件大小,`g_FileSize`存储文件大小。 这个实例为开发者提供了一种实现无刷新文件上传的解决方案,尤其适用于需要实时反馈上传进度的场景。不过需要注意的是,由于依赖于ActiveX控件,这种方法可能不适用于所有现代浏览器,尤其是那些默认禁用或不支持ActiveX的浏览器,如Chrome和Firefox。对于跨平台和多浏览器兼容的解决方案,开发者可能需要考虑使用其他技术,如HTML5的File API,或者使用第三方库,如jQuery File Upload或Plupload等。