无法上传超过5000 k大小的zip文件

时间:2009-03-25 05:35:49

标签: c# .net asp.net

我对C#更新鲜,我能够将文件上传到服务器的大小更小   但是当我试图上传超过5000k的大小时,它会给出一个例外。

这是我的C#代码

private void UploadFile(string filename)
{
  try
  {
    PeopleMatrixService peopleMetrixService = new PeopleMatrixService();

    String strFile = System.IO.Path.GetFileName(filename);
    // TestUploader.Uploader.FileUploader srv = new TestUploader.Uploader.FileUploader();
    FileInfo fInfo = new FileInfo(filename);
    long numBytes = fInfo.Length;
    double dLen = Convert.ToDouble(fInfo.Length / 10000000);
    if (dLen < 8)
    {
      FileStream fStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
      BinaryReader br = new BinaryReader(fStream);
      byte[] data = br.ReadBytes((int)numBytes);
      br.Close();
      string sTmp = peopleMetrixService.UploadFile(data, strFile);
      fStream.Close();
      fStream.Dispose();
      MessageBox.Show("File Upload Status: " + sTmp, "File Upload");
    }
    else
    {
      MessageBox.Show("The file selected exceeds the size limit for uploads.", "File Size");
    }
  }
  catch (Exception ex)
  {
    MessageBox.Show(ex.Message.ToString(), "Upload Error");
  }
}

和我在webservice中的代码

[WebMethod]
public string UploadFile(byte[] f, string fileName)
{
  try
  {
    MemoryStream ms = new MemoryStream(f);
    FileStream fs = new FileStream(System.Web.Hosting.HostingEnvironment.MapPath("~/Response Attachments/") + fileName, FileMode.Create);
              //FileStream fs = new FileStream(Server.MapPath("~/Response Attachments/") + fileName, FileMode.Create);
    ms.WriteTo(fs);
    ms.Close();
    fs.Close();
    fs.Dispose();
    return "OK";
  }
  catch (Exception ex)
  {
    return ex.Message.ToString();
  }
}

5 个答案:

答案 0 :(得分:6)

默认情况下,maxRequestLength设置为4096(4mb),您需要在web.config文件中将其更改为更大的大小。

请参阅:http://msdn.microsoft.com/en-us/library/e1f13641(VS.80).aspx

答案 1 :(得分:3)

它是web.config中的'httpruntime'部分,例如:

<configuration>
  <system.web>
    <httpRuntime executionTimeout="300" maxRequestLength="20480" />
  </system.web>
</configuration>

答案 2 :(得分:2)

您在web.config文件中设置的最大大小是多少?检查this

答案 3 :(得分:0)

默认情况下,Web服务器将接受小于4MB的上传;必须更新web.config文件才能支持更大的上传。

答案 4 :(得分:0)

将其放在您的web.config

  <system.web>
     <httpRuntime executionTimeout="360" maxRequestLength="100000" />

一次启用360秒超时和100,000 Kb上传数据。

如果不起作用,请在IIS服务器上运行此命令。 (替换[IISWebsitename])

C:\Windows\System32\inetsrv>appcmd set config "[IISWebsitename]" -section:requestFiltering -requestLimits.maxAllowedContentLength:100000000 -commitpath:apphost

一次启用100,000,000字节的上传数据。