我可以在c#中使用此函数来获取图像二进制文件
public static byte[] ImageToBinary(string imagePath)
{
var fileStream = new FileStream(HttpContext.Current.Server.MapPath("~/" + imagePath), FileMode.Open, FileAccess.Read);
var buffer = new byte[fileStream.Length];
fileStream.Read(buffer, 0, (int)fileStream.Length);
fileStream.Close();
return buffer;
}
但我需要在sql中做同样的事情
我使用此查询
(SELECT * FROM OPENROWSET(BULK N'C:\Users\0000001_computers_415.jpeg', SINGLE_BLOB) AS CategoryImage)
但是我收到了一个错误:
Msg 4861,Level 16,State 1,Line 1
无法批量加载,因为无法打开文件“C:\ Users \ 0000001_computers_415.jpeg”。操作系统错误代码3(系统找不到指定的路径。)。
答案 0 :(得分:5)
您的SQL Server只能查找自己上下文的文件。您必须将文件复制到SQL Server计算机上的目录中以使用本地权限访问它,或者必须定义共享路径并从那里读取SQL Server。
您的c:\users\...
很可能是您自己的本地计算机的驱动器。