【问题标题】:file size exceed the length [duplicate]文件大小超过长度[重复]
【发布时间】:2014-12-27 19:51:08
【问题描述】:

当文件大小为1.66 MB或更大时,出现“文件大小超过长度”的错误。如何使系统尽可能地接受大文件大小。该文件保存在数据库中,列类型为 varbinary(max)。不知道是什么原因导致这个错误!

代码是:

if (FileUpload1.HasFile)
{
    if (ext.Equals(".pdf"))
    {
        Stream fs = FileUpload1.PostedFile.InputStream;
        BinaryReader br = new BinaryReader(fs);
        Byte[] bytes = br.ReadBytes((Int32)fs.Length);

        string classNmae = ddClass.Text.Split('~')[0] + ddClass.Text.Split('1');
        com.Parameters.Clear();
        com.CommandText = "UPDATE [Marking] SET [fileName]=@fileName, [fileType]=@fileType, [type]=@typ,[submissionDate]=@sd, [filePath]=@fp where [class_id]=@cid AND [module_id]=@mid  AND [student_id]= '" + Session["id"].ToString() + "'";
        com.Parameters.Add("@cid", SqlDbType.VarChar).Value = ddClass.Text.Split('~')[0];
        com.Parameters.Add("@mid", SqlDbType.VarChar).Value = ddClass.Text.Split('~')[1];
        com.Parameters.Add("@fileName", SqlDbType.VarChar).Value = filename;
        com.Parameters.Add("@fileType", SqlDbType.VarChar).Value = "application/pdf";
        com.Parameters.Add("@typ", SqlDbType.VarChar).Value = txtType.Text;
        com.Parameters.Add("@sd", SqlDbType.VarChar).Value = DateTime.Now;
        com.Parameters.Add("@fp", SqlDbType.Binary).Value = bytes;

        com.ExecuteNonQuery();

【问题讨论】:

  • 为什么不使用参数化 SQL 作为学生 ID? 一切都使用参数。 (这与问题无关,但无论如何你都应该这样做。)
  • 检查与最大请求大小相关的 IIS 站点的配置 - ajaxuploader.com/large-file-upload-iis-asp-net.htm还有 Jon Skeet 所说的!
  • 还要记住数据库不是文件服务器
  • @WouterHuysentruit 虽然与 OP 发布的代码没有真正的关系,但可以提出一些论点,认为这是一条很好的路线 - technet.microsoft.com/en-us/library/…
  • 参数化学生 ID 是什么?它会导致当前代码出现任何问题吗?

标签: c# sql asp.net


【解决方案1】:

在您的 web.config 文件中:

<configuration>
    <system.web>
        <httpRuntime maxRequestLength="16384" />
    </system.web>
</configuration>

值以 KB 为单位。在这种情况下,等于 16MB。

【讨论】:

  • 我尝试使用此代码,但它导致错误“HTTP 错误 500.19 - 内部服务器错误”
  • 那你为什么接受这个答案?
猜你喜欢
  • 1970-01-01
  • 2017-03-04
  • 2023-03-25
  • 2019-10-10
  • 1970-01-01
  • 1970-01-01
  • 2022-10-19
  • 1970-01-01
  • 2014-09-09
相关资源
最近更新 更多