如何在DataBase中上传大文件?

时间:2012-05-17 12:53:49

标签: c# asp.net sql-server-2008

        protected void Button1_Click(object sender, EventArgs e)
        {
            //Uploading file from Computer to Database(server)
            String filename = "", filetype = "", filesize = "";
            if (FileUpload1.HasFile)
            {
                UploadLogic bl=new UploadLogic();
                filename = FileUpload1.PostedFile.FileName;
                filesize = FileUpload1.PostedFile.ContentLength.ToString();
                filetype = FileUpload1.PostedFile.ContentType;
                byte[] filepath = new byte[FileUpload1.PostedFile.ContentLength];
                FileUpload1.PostedFile.InputStream.Read(filepath, 0, FileUpload1.PostedFile.ContentLength);
                int i = bl.upload_file(filename, filesize, filetype, filepath);
                DataSet ds = new DataSet();
                ds = bl.uploaded_Content();
                ListBox1.DataSource = ds;
                ListBox1.DataTextField = "File_Name";
                ListBox1.DataValueField = "File_Name";
                //Bind your Data
                ListBox1.DataBind();
            }

        }

此代码仅上传小于1MB的文件。如果我想上传巨大的文件,它就不会发生。谁能告诉我为什么?

2 个答案:

答案 0 :(得分:1)

查看httpRuntime

您需要修改web.config

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

默认设置为4096kb

无论如何,如果文件大小相当高,那么将文件上传到数据库将是一个很好的解决方案。

答案 1 :(得分:1)

编辑您的web.config

<httpRuntime useFullyQualifiedRedirectUrl="true|false"
             maxRequestLength="size in kbytes"
             executionTimeout="seconds"
             minFreeThreads="number of threads"
             minFreeLocalRequestFreeThreads="number of threads"
             appRequestQueueLimit="number of requests"
             versionHeader="version string"/>

来源 Element