如何将文件(pdf和word文件)存储到sql数据库中,以及如何在用户单击时从sql数据库中选择“保存”,“打开”显示该文件。我正在使用c#+ asp.net web应用程序进行项目
答案 0 :(得分:1)
你需要在这里做几件事:
1)创建允许用户上传文件的UI页面。
此页面将有一个FileUpload控件来检查所需的扩展名
2)编写代码以将这些文件保存到数据库
文件可以存储为二进制blob。由您和您的应用程序决定数据库的架构。您也可以选择其中一种ORM工具,以便从代码中访问数据库,参见
你有很多选择,选择看起来最自然/最容易的东西。
3)为用户创建用户界面以选择现有文件
这将使用您的ORM数据层回读文件列表并显示某些按钮/链接供用户选择和下载
4)一旦用户选择文件并返回文件,就从数据库中检索文件
阅读此MSDN关于returning binary files
的文章此外,稍微谷歌,你可能会发现许多现有的解决方案与DNN等框架。
答案 1 :(得分:0)
要存储文件,您应该从SQL Server 2008中查看文件流:http://msdn.microsoft.com/en-us/library/cc716724.aspx
其他传统平台具有类似支持(使用二进制或图像数据类型)。
另一种方法是您可以将文件存储在共享文件系统中,并且只将该文件的路径存储在SQL表中。
答案 2 :(得分:0)
最常见的方法是在数据库中有两列用于存储propley的文件。 1列保存带有扩展名的文件名(例如:file1.txt),第2列保留数据类型binary。 在应用程序级别。方法获取上载的文件名并将其转换为字节数组。那么这个数组存储在二进制字段的sql中。文件名存储在第1个字段中。 要读回文件,另一种方法是从sql读取二进制字段并将其转换回FileStream,然后用原始文件名(扩展名)保存。
答案 3 :(得分:0)
使用fileUploaded上传文件。
将文件读入字节数组:
byte[] data = System.File.ReadAllByte(File Path);
将byte []转换为十六进制并将其存储在SQL
中的nvarchhar数据字段中stringBuilder sb = new StringBuilder()
foreach(byte b in data)
{
sb.Append(b.ToString("X");
}
当您需要显示它时,将其转换回byte []并从中创建一个文件,然后让用户从那里打开/保存它。