如何创建包含内容的不存在的文件,然后将其保存为数据库中的二进制文件
本文关键字:保存 然后 二进制文件 数据库 不存在 何创建 创建 包含内 文件 | 更新日期: 2023-09-27 17:50:42
所以我有一个数据库,它有一个附件表,里面我有一个二进制列,存储实际的文件。
我想在我的代码中生成一个文件,将内容添加到这个文件中,并将其保存到我的数据库中,作为二进制数据,而无需保存物理文件。因此我有这个代码
var fileString = "Some random file content string";
var bytes = Encoding.UTF8.GetBytes(fileString);
var stream = new MemoryStream(bytes);
这创建了文件内容的二进制文件,但是当我保存文件时,它是一个*.bin文件,因为没有代码说明它是什么类型的文件。
我如何用一个文件包装字符串的内容,然后可以保存为二进制文件?
请不要建议其他选择,我知道这不是最好的方法,但我对我正在使用的这个系统有极大的限制。
由于
您可以像这样尝试System.IO.File.WriteAllBytes:
var fileString = "Some random file content string";
var bytes = Encoding.UTF8.GetBytes(fileString);
File.WriteAllBytes(pathToFile, bytes);
你必须把你的文件数据像字节数组一样传递给SQL参数值。
你所要做的就是创建DbCommand继承者(如MS SQL server的SqlCommand)添加命令文本,如"插入附件(attachid, content)值(@aid, @c)"创建参数instances
var p = command.CreateParameter();
p.ParameterName = "@c";
p.Value = bytes;
p.SqlDbType = SqlDbType.Binary;
command.Parameters.Add(p);
(其他参数相同)执行command.ExecNonQuery();这将把字符串值作为字节数组放到数据库中的数据表附件中。