直接上传/下载数据到Sql Server

时间:2012-12-31 12:28:17

标签: c# asp.net entity-framework sql-server-2012

我正在研究服务器/客户端应用程序,客户端能够上传/下载文件,它将作为varbinay(max)存储在SQL server(2012)中。问题是我希望文件将直接上传到数据库,而不使用ReadAllBytes方法将文件保存在服务器的硬盘上,只接受路径参数。 以下是服务器端使用的代码片段:

HttpPostedFile file1 = context.Request.Files[0];
            byte[] buffer = new byte[file1.ContentLength];
            file1.InputStream.Read(buffer, 0, file1.ContentLength);

以下是代码用户,以便从数据库中的数据写入文件:

            foreach (var file in list)
        {
            System.IO.File.WriteAllBytes(path + file.FileName, file.FileContents);
        }

1 个答案:

答案 0 :(得分:1)

HttpPostedFile附带了一个可以读取的输入流。将其读入字节数组,然后将其存储在数据库中。或者,如果您的数据库接口(在EF不太可能的情况下)直接接受流,只需将其放入原样,

请注意,ASP.NET(或它是IIS?)可能会暂时将文件上传到磁盘上,如果它非常大的话。