1
我寫了下面的代碼從sharepoint下載文件。下載的文件只在某些機器上正常工作。對於其他人來說,它說文件已損壞。問題是MS Office和圖像文件,但是PDF沒有任何問題。我們發現腐敗問題是由於在文件內容的頂部添加了一個十六進制數字。當它被刪除時,文件被正確打開。十六進制字符已被描繪出來以字節表示文件大小。爲什麼這隻發生在某些機器上,我們該如何解決?ASP.NET下載的文件損壞
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();
}