Я написал следующий код для загрузки файла с 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();
}