就用一般的上传,把Web.Config里 上传文件的大小限制 和 上传时间限制 改大一些,不行吗?

解决方案 »

  1.   

    不行啊,我把我的代码贴给您看看:(用HtmlInputFile控件)
    <%@ Import Namespace="System.IO" %>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OleDb" %>
    <%@ Page Language="C#" Debug="true"   %>
    <html>
    <head>
    <title>文件上传</title>
    <script language="C#" runat="server">
    public class YourPageClass 
    {
       static string myConnString =@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\small program\download\网站下载系统专业版(Asp)\0001\download.asa;";
       public static OleDbConnection myConnection = new OleDbConnection(myConnString);
       
    }protected void Page_Load(object sender, EventArgs E )
    {
      
      DataSet ds =new DataSet();
      OleDbDataAdapter command=new OleDbDataAdapter("select * from class",  YourPageClass.myConnection);
      command.Fill(ds,"class");
      command.Dispose();
      DropDownList1.DataSource=ds.Tables["class"];
      DropDownList1.DataTextField="class";
      DropDownList1.DataValueField="classid";
      DropDownList1.DataBind();
    }
    public void UploadFile_Click(object sender, EventArgs E )

      
      OleDbConnection myConnection_disc = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\small program\download\网站下载系统专业版(Asp)\0001\download.asa;");
      OleDbCommand command_ml=new OleDbCommand("select * from ml",YourPageClass.myConnection);
      OleDbCommand command_disc=new OleDbCommand("select disc from disc",myConnection_disc);
      YourPageClass.myConnection.Open();
      myConnection_disc.Open();
      OleDbDataReader reader_ml=command_ml.ExecuteReader();
      OleDbDataReader reader_disc=command_disc.ExecuteReader();
      reader_ml.Read(); 
      reader_disc.Read();
      if (myFile.PostedFile!=null)
      { 
       while(reader_ml.GetInt32(0)!=int.Parse(DropDownList1.SelectedItem.Value) ) 
       //DropDownList1.SelectedItem.Value)
       {
       reader_ml.Read();
       }
       Labe_show.Text="dddd";
      //RadioButtonList1.SelectedItem.Value ;
       string nam=myFile.PostedFile.FileName;
       int i=nam.LastIndexOf("\\");
       string newnm=nam.Substring(i);
       string a=reader_disc["disc"].ToString();
       string b=reader_ml["md"].ToString();
       myFile.PostedFile.SaveAs(a+b+newnm);
       //fname.Text=myFile.PostedFile.FileName;
       //fenc.Text=myFile.PostedFile.ContentType;
       //fsize.Text=Convert.ToString(double.Parse(myFile.PostedFile.ContentLength.ToString())/1048576)+"M";
       //fpath.Text=@"http://10.168.104.7\download\pro\" + reader_ml.GetString(1)+newnm;
       }
       //reader_disc.Close();
       //reader_ml.Close();
       //YourPageClass.myConnection.Close();
      // myConnection_disc.Close();
          }
       
       </script>
       </head>
       <body bgcolor="#000080">
    <form id="uploaderform" method="post" action="upload.aspx" enctype="multipart/form-data" runat="server">
    <table border="2" cellspacing="1" width="388" id="AutoNumber1" height="338" style="WIDTH: 388px; HEIGHT: 338px">
    <tr>
    <td width="100%" height="330" align="left" valign="top">
    <div align="center">
    <center>
    <table border="0" width="377" id="AutoNumber2" height="328" style="WIDTH: 377px; HEIGHT: 328px">
    <tr>
    <td width="82" height="32" align="middle" style="WIDTH: 82px">
    <font color="#ffff00" size="2">请选择类别</font></td>
    <td width="69%" height="32"><FONT face="宋体">
    <asp:DropDownList id="DropDownList1" runat="server" Width="265px"></asp:DropDownList></FONT>
    </td>
    </tr>
    <tr>
    <td width="82" height="30" align="middle" style="WIDTH: 82px; HEIGHT: 30px">
    <font size="2" color="#ffff00">请选择文件</font></td>
    <td width="69%" height="30" style="HEIGHT: 30px"><FONT face="宋体"></FONT>&nbsp; <INPUT id="myFile" style="WIDTH: 259px; HEIGHT: 22px" type="file" size="24" name="File1" runat="server">
    </td>
    </tr>
    <tr>
    <td width="100%" height="23" colspan="2" align="middle" style="HEIGHT: 23px"><FONT face="宋体">
    <INPUT id="Button_upload" style="WIDTH: 132px; HEIGHT: 24px" type="button" value="上 传" name="Button1" OnServerClick="UploadFile_Click" runat="server"></FONT>
    </td>
    </tr>
    <tr>
    <td width="100%" height="33" colspan="2" align="middle"><FONT face="宋体">
    <asp:Label id="Labe_show" runat="server" Width="179px" ForeColor="Yellow"></asp:Label></FONT>
    </td>
    </tr>
    <tr>
    <td width="100%" height="152" colspan="2">
    <font size="2" color="#ffffff">&nbsp;</font><font size="2" color="#ffff00">文件名称:
    <asp:Label id="fname" runat="server" Width="282px"></asp:Label></font><p>
    <font size="2" color="#ffff00">&nbsp;文件类型:
    <asp:Label id="fenc" runat="server" Width="285px"></asp:Label></p>
    <P></FONT></P>
    <p><font size="2" color="#ffff00">&nbsp;文件大小:
    <asp:Label id="fsize" runat="server" Width="283px"></asp:Label></p>
    <P></FONT></P>
    <p><font size="2" color="#ffff00">&nbsp;上传路径:
    <asp:Label id="fpath" runat="server" Width="287px"></asp:Label></font></p>
    </td>
    </tr>
    <tr>
    <td width="100%" height="33" colspan="2" align="middle">
    <font size="2" color="#ffff00" a href="###" onclick="javascript:window.close(); return false;">
    <strong>关闭窗口</strong></font></td>
    </tr>
    </table>
    </center>
    </div>
    </td>
    </tr>
    </table>
    </form>
    </body>
       </html>
    上传小文件(20M成功过)没问题,web.config中最大长度设成了1048576,但是上传更大的文件时,IE浏览器下部的状态条在非常缓慢地向前移动,但当移动到大约快结束的时候,页面刷新不过来,页面不能显示,文件也没传成功,提示:
    请尝试以下操作:打开 10.168.104.66 主页,然后查找指向您感兴趣信息的链接。 
    单击刷新按钮,或以后再试。
    您要访问的网页有问题,无法显示。
    单击搜索,寻找 Internet 上的信息。 
    也可查看相关站点列表。 
    HTTP 500 - 内部服务器错误 
    Internet Explorer 
    请问是什么原因?急死我了
      

  2.   

    web.config里你是不是改的这个节点
    <httpRuntime executionTimeout="90" maxRequestLength="1048576" useFullyQualifiedRedirectUrl="false"/>
      

  3.   

    executionTimeout时间设长一点。
    executionTimeout="900"
      

  4.   

    在IIS里看一下,好象IIS也有ExecuteTime是限制的。
    不过你用HTTP上传这么大文件是很不合适的,而且速度是很慢的。建议用FTP吧
      

  5.   

    use abcupload.net or netartisian fileup
    both are 3rd-party .net control and support GB level web upload.
      

  6.   

    用ftp好啦。用什么asp页面啊。
      

  7.   

    可是大家都没告诉我出现这种问题的原因是什么啊?如果用ftp可不可以编程实现?
      

  8.   

    这是服务器的内存不够的原因吧,文件在没有传完时都是在内存中,通常没有1G以上的内存的服务器,传大文件应该是受不了的。(个人观点)
    可以用ftp控件,用vb做成ocx,dll都可以,vb里的wininet控件很方便,如果要功能强一点可以用 winsock控件,不过难度比较大。发布后打包下载到客户端
      

  9.   

    ftp上传的好处就是边传边保存,不会占用服务器内存
      

  10.   

    通过WEB界面上传大文件,简直是疯了!
      

  11.   

    会超时的。
    还是用ftp的好。有的可以支持断点序传
      

  12.   

    WEBCONFIG 中有设置上传文件大小的设定。
    <httpRuntime maxRequestLength="10240" />你把10240改成“2024000”
    再TRY 一下 ,如果还不行,你还是用FTP吧。
      

  13.   

    如果有money的话,买个2,3G的内存,应该ok了!:)
      

  14.   

    大大介绍我几个好用且免费的ftp控件吧?
      

  15.   

    把machine.config中上传文件的大小改大
      

  16.   

    靠,在WEB界面上传大文件,而且是如此大的文件,简直是疯了!我晕....  
     
      

  17.   

    采用FTP,如果你用HTTP的话以后肯定后悔
      

  18.   

    诸位说的用FTP是指用FTP工具还是指在页面使用FTP控件?能不能告诉我详细的方法?小弟不甚感激!
      

  19.   

    可以用页面来上传4G。用www.softstainse.com的组件就可以。不过是要money.
    不过在很长的时间都可以使用!
      

  20.   

    用ftp组件可以的,免费一个aspinet.dll
      

  21.   

    一定要用FTP  HTTP上传效率太低而且还不支持端点续传,编译一个FTP Class然后在页面里调用
      

  22.   

    各位都只说了方法,但具体的应用例子呢?能否稍加讲一下,就算只讲用FTP,我们也不知道怎么用呀!!
      

  23.   

    我讲一下我试验成功的例子:
    主要是用一个ftp的组件aspinet.dll,然后包装成.cab文件,在客户端用
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <style type="text/css">
    <!--
    .mystyle {
    font-size: 12px;
    border: 1px solid #CCCCCC;
    }
    -->
    </style>
    </HEAD>
    <SCRIPT LANGUAGE="vbscript">
    sub upload()
             '读取客户端的文件名及路径
             dim cfilename
    cfilename = document.form1.cfilename.value dim sfilename
    sfilename=document.form1.sfilename.value
    '读取希望上载到服务器上的文件名 
    FTP_TRANSFER_TYPE_ASCII = 1 
    FTP_TRANSFER_TYPE_BINARY = 2 

    '创建ftp ActiveX控件对象 
    set ftpconn=CREATEOBJECT("AspInet.FTP") 
    if FtpConn.FTPPutFile(serverip,username,password,sfilename,cfilename,FTP_TRANSFER_TYPE_BINARY) then 
    msgbox "上传成功..."
    window.close()
    else 
    msgbox "上传失败..."
    window.close()
    end if 
    end sub
    </SCRIPT> 
    function chgtxt()
    {
    document.form1.sfilename.value=GetFileName(document.form1.cfilename.value)
    }
    function GetFileName(PathStr)
    {
    var Path;
    var filename; Path=PathStr.split("\\");
    filename=Path[Path.length-1];
    return filename;
    }
    //-->
    </script>
    <body> <FORM name=form1 METHOD=POST ACTION="">
      <table width="100%" border="1" cellpadding="2" cellspacing="2" bordercolor="#CCCCCC">
        <tr> 
          <td width="34%" class="mystyle">客户端的文件名:</td>
        </tr>
        <tr> 
          <td class="mystyle"><input name="cfilename" type="file" class="mystyle" onChange="chgtxt()" ></td>
        </tr>
        <tr> 
          <td class="mystyle">上载到服务器后的文件名:</td>
        </tr>
        <tr> 
          <td><input name="sfilename" type="text" class="mystyle" readonly="true"></td>
        </tr>
        <tr> 
          <td><input name="button" type="button" class="mystyle"onClick="vbscript:aa()"  value="确定"></td>
        </tr>
      </table> </FORM>
    </body>   </html> 
    功能简单,但是并不是很实用,没有进度条啊什么的。用vb的wininet控件开发activeX.dll也挺简单的,我也试成功过,在这里扔块砖头,希望大家能一起把这个ftp在B/s 上传功能完善一下
      

  24.   

    不太现实吧.
    用这个要到什么时候才能上传完啊
    ftp
      

  25.   

    我看过一个方法,不过自己写服务器程序和客户端程序,修改HTTP协议上传数据,我们的豪杰VOD上载程序就是这样,上载一个300M的程序(局域网)需要时间大概为50秒钟
      

  26.   

    好像 限制上传文件大小在 machine.config设置吧
      <httpRuntime executionTimeout="90" maxRequestLength="1000000" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100"/>
      

  27.   

    1G? use ftp. such as flashget, it can continue trans even after connection broken.
      

  28.   

    1G用WEB来传真的有点疯狂,不用考虑,用FTP,可以做成ACTIVEX,还是通过WEB来传。http://www.codeproject.com/dotnet/dotnetftp.asp
      

  29.   

    1G的文件拿硬盘拷吧,用2M的adsl来全整上传也要5个小时。