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

本文关键字:数据 Sql Server 下载 | 更新日期: 2023-09-27 17:50:01

我正在一个服务器/客户端应用程序,其中客户端有能力上传/下载一个文件,这将被存储在SQL server(2012)作为varbinay(max)。问题是,我希望文件将直接上传到数据库,而不将文件保存在服务器的硬盘驱动器上,使用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);
}

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

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

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