У меня есть проект, в котором будут храниться документы в виде сгустков в базе данных MySQL, и загрузить их в виде байтовых массивов с помощью C#:C#: файл поврежден после загрузки в виде массива байт
public static byte[] GetFile(string fileName)
{
conn.Open();
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = ...
using (MySqlDataReader reader = cmd.ExecuteReader())
{
reader.Read();
if (reader.HasRows)
{
return Util.ObjectToByteArray(reader["Content"]);
}
...
}
...
public static byte[] ObjectToByteArray(object obj)
{
BinaryFormatter bf = new BinaryFormatter();
using (var ms = new MemoryStream())
{
bf.Serialize(ms, obj);
return ms.ToArray();
}
}
загружать файлы, как это:
byte[] newFile = File.ReadAllBytes(fileName);
и скачать, как это:
но когда я загружаю файлы, они повреждены и не могут быть открыты (например, файлы Excel, некоторые другие типы могут быть открыты). Расширение загруженного файла кажется правильным, но я получаю сообщение о том, что «расширение файла или формат файла недействительны».
Dont 'сохранять файлы в базе данных. http://stackoverflow.com/a/41235395/267540 – e4c5
Получите инструмент diff, а затем работайте в симметричных этапах - сделайте минимальную часть своего проекта, которая включает в себя какое-то преобразование, затем запустите бит, который должен отменить это преобразование, затем сравните вывод с входом. Затем создайте и добавьте сложность (загрузка/загрузка, взаимодействие с БД и т. Д.), –