【发布时间】:2012-12-31 12:28:16
【问题描述】:
我正在开发一个服务器/客户端应用程序,其中客户端能够上传/下载文件,该文件将作为 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);
}
【问题讨论】:
-
所以...不要使用 ReadAllBytes?
-
那我应该用什么?
-
不相关,但您是否查看了
filestream数据类型而不是varbinary(max)? -
那么我应该使用什么来将文件存储在数据库中(列的类型)?
-
如果您不想写入磁盘,请不要使用
File类中的方法。避免直接使用磁盘不是重点吗?
标签: c# asp.net entity-framework sql-server-2012