C#中用js实现文件无刷新上传

最近在写C# .net代码的时候,遇到一个上传刷新的问题。

 
       在新增数据项的时候,用ajax实现无刷新提交,但上传文件的时候,由于数据类型原因,不能将页面的<asp:FileUpload>中以字符串值的方式传到js里调用。我一共找到了两个方法予以解决,实现无刷新上传。
 
        第一种方法:利用js的ADODB.Stream,将文件先转换成流,再通过js上传到服务器,这样有个好处就是可以上传超大文件,并且由于是数据流,可以支持断点续传、方便显示上传进度等人性化功能。唯一的缺点是要客户端浏览器需要设置安全级别,或者安装相关ActiveX控件(这个控件自己做的,加载到页面中)。
  
        相关代码:
        文件有:1个前台页面:upload.html、 1个js控制:upload.js、 1个后台处理页面:Accept.aspx(Accept.aspx.cs)
       代码文件如下:
       upload.html          
Code
 
      upload.js
               
Code
    
   
      Accept.aspx              
1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AcceptFile.aspx.cs" Inherits="commonJS_AcceptFile" %>
2
   
 
     Accept.aspx.cs
Code
 
 
 
第二种方法:用js动态创建form和iframe上传文件,实现无刷新。优点是代码量小,无需客户端安装控件,缺点就是上传有限制大小,下面看代码:
           需要文件有:1个前台页面upload.html、  1个js函数 function upFile、 1个处理文件accept.aspx(accept.aspx.cs) 
    upload.html               
Code
 
 
function upFile
              
Code
 
 
accept.aspx
             
1<%@ Page Language="C#" AutoEventWireup="true" CodeFile="up.aspx.cs" Inherits="Member_up" %>
 
accept.aspx.cs
            
Code
 
 
 
以上为我写程序过程中遇到过的问题和探索到的解决方法,写下来一是自己在温习巩固一遍,二来是为了与大家分享,请大家指正需改进之处,以期达到共同进步!
posted @ 2009-06-20 16:46  东方 蜘蛛  阅读(4638)  评论(5编辑  收藏  举报