【问题标题】:C# byte arrays to store multiple files into one filed in databaseC#字节数组将多个文件存储到数据库的一个字段中
【发布时间】:2013-07-10 21:55:24
【问题描述】:

我目前必须将多个文件流式传输到数据库并检索。挑战在于要流式传输的文件数量未知,文件名未知,并且数据库中只有一个字段来存储所有文件!好消息是要流式传输的文件的位置是固定的。

Eg. 
Location to stream from : c:\Temp\FilesToStreamFolder 
Current files (the number of files is unknown and names can differ too)
test.dat
background.jpeg
banner.gif
otherdata.dat

我想将所有这些文件流式传输到数据库(一个数据字段)并在需要时以适当的名称检索文件?

希望我已经解释清楚了。非常感谢你们的任何想法、想法等。谢谢你。

【问题讨论】:

  • 除了数据字段(BLOB?)之外,您还有哪些其他字段。你有文件名和长度的字段吗?
  • 嗨,马可,感谢您的回复。不幸的是,目前我的数据库中只有一个字段。数据库中没有其他字段可以存储文件名。

标签: c# sql stream bytearray store


【解决方案1】:

我会建议先将文件转换为字节数组。然后将其LengthName 记录在数据表中。获取另一个文件的字节数组并将其附加到前一个数组中,并将其长度和名称记录在数据表中。对所有文件继续相同的过程。使用您的字节数组更新数据库以存储所有文件。将您的数据表作为XML 文件存储在系统中。

当您需要取回文件时,请阅读数据库字段。阅读您的XML 文件。根据 XML 文件中的文件长度拆分数组。使用相应的名称。如果可能,您也可以选择将 XML 文件数据保存在数据库中。我希望你也在寻找同样的东西。

希望对你有帮助。

【讨论】:

  • 是否有任何万无一失的方法将数据表与字节数组一起作为前缀,从而不依赖于客户端?
  • 那么你必须将文件也存储到数据库中。
  • 不幸的是,只有一个字段可以将文件存储在数据库中,我没有更改数据库的选项。 XML 文件建议很好,但它可以被篡改。
  • 如果 XML 文件也是一个选项,则可以使用 dataTable.WriteXml("..../Sample.xml");
猜你喜欢
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-22
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 2020-07-17
相关资源
最近更新 更多