怎样上传比较大的文件,而且速度比较快,不使用第三方控件。
以前使用
function UploadSpecialSegmentFile()
{
    var success = true;
    try{   
        var   fso=new ActiveXObject("Scripting.FileSystemObject");   
        var   f=fso.OpenTextFile(document.getElementById('SPECIALSEGMENT_FILEPATH').value,1);   
          
        var fName = document.getElementById('SPECIALSEGMENT_FILEPATH').value.substring(document.getElementById('SPECIALSEGMENT_FILEPATH').value.lastIndexOf('\\')+1);
        while(!f.AtEndOfStream)
        {
            var buffer = new StringBuilder();
            var finished = false;
            //for(var bufferLineCount = 0;bufferLineCount < 100000 && !f.AtEndOfStream; bufferLineCount++)
                buffer.Append(f.Read(100000));
        }
        f.close(); 
  }
  catch(e)
  {
    alert(e.message);
  }  
  return success ; 
}
但文件超过1M就变得特别的慢,后来改成
 function UpFile()
       {
         var strFileName=document.getElementById('file1').value;
         var objStream = new ActiveXObject ('ADODB.Stream');
         objStream .Type=1;
         objStream .Open();
         objStream .LoadFromFile(strFileName);
         objStream .SaveToFile("E:\temp",2);
         objStream .Close();
       }
但老是报:此计算机上的安全设置禁止访问其他域的数据源。在网上搜了N多的方法还是没有搞定,那位高手帮指点指点,谢谢!

解决方案 »

  1.   

    用webservice,用cs结构至于bs的,我也找不到很好的解决方案.主要是国内宽带调包严重,上传大文件很容易失败.
      

  2.   

    如果你决定用cs,推荐你去搜索一个叫做"MTOM"的,他的代码你仔细看看,我试过,很差的网络,例如电信传网通,上传完全无问题.
      

  3.   

    用的BS结构,页面是一个弹出的html,用于用户添加记录,也可添加文件,因为有时附件是媒体文件,很大,现在能简单的获得客户端的文件路径,要快速的上传到服务器,郁闷啊!
      

  4.   

    可以借助HttpHandler,IServiceProvider,HttpWorkerRequest来实现