Я написал следующий код для загрузки файла из sharepoint. Скачанный файл нормально работает только на некоторых машинах. Для других он говорит, что файл поврежден. Проблема связана с файлами MS Office и изображениями, однако с PDF проблем нет. Мы определили проблему повреждения из-за добавления шестнадцатеричного числа вверху содержимого файла. Когда он удален, файл открывается правильно. Было установлено, что шестнадцатеричный символ представляет размер файла в байтах. Почему это происходит только на некоторых машинах и как это исправить?
private void DownloadFile()
{
SPListItem item = GetFileFromSharepoint();
if (item != null)
{
byte[] bytes = item.File.OpenBinary();
Response.ClearContent();
Response.ClearHeaders();
string fileType = string.Empty;
fileType = item["FileFormat"].ToString();
Response.AppendHeader("Content-Disposition",
string.Format("attachment; filename= {0}", item["Filename"].ToString().Replace(" ", "")));
Response.ContentType = GetContentType(fileType);
//Check that the client is connected and has not closed the connection after the request
if (Response.IsClientConnected)
{
Response.BinaryWrite(bytes);
}
}
Response.Flush();
Response.Close();
}