C# 直接将数据上载/下载到Sql Server

C# 直接将数据上载/下载到Sql Server,c#,asp.net,entity-framework,sql-server-2012,C#,Asp.net,Entity Framework,Sql Server 2012,我正在开发一个服务器/客户机应用程序,在该应用程序中,客户机可以上载/下载文件,该文件将以varbinay(max)的形式存储在SQL server(2012)中。问题是,我希望使用ReadAllBytes方法将文件直接上载到数据库,而不将文件保存在服务器的硬盘上,该方法只接受路径参数 以下是服务器端使用的代码片段: HttpPostedFile file1 = context.Request.Files[0]; byte[] buffer = new byte[file

我正在开发一个服务器/客户机应用程序,在该应用程序中,客户机可以上载/下载文件,该文件将以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文件)
{
System.IO.File.writealBytes(path+File.FileName,File.FileContents);
}

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


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

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


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

。。。不使用ReadAllBytes?那么我应该使用什么?不相关,但是您是否查看了
filestream
数据类型而不是
varbinary(max)
?那么我应该使用什么来存储数据库中的文件(列的类型)?如果您不想写入磁盘,请根本不要使用
文件
类中的方法。避免直接使用磁盘不是重点吗?所以。。。不使用ReadAllBytes?那么我应该使用什么?不相关,但是您是否查看了
filestream
数据类型而不是
varbinary(max)
?那么我应该使用什么来存储数据库中的文件(列的类型)?如果您不想写入磁盘,请根本不要使用
文件
类中的方法。避免直接使用磁盘不是重点吗?Thaks要快速回答,我正在看一看!问题是,当我试图从服务器读取文件时,它们已损坏。但只有简单的文本文件才能工作@kad_87那么也许你应该展示一些代码,并描述你真正的问题是什么。Thaks为了快速回答,我正在看一看!问题是,当我试图从服务器读取文件时,它们已损坏。但只有简单的文本文件才能工作@kad_87那么也许你应该展示一些代码并描述你真正的问题是什么。