2013-02-18 59 views
0

我現在用的是C#HttpPostedFileBase使用這段代碼保存字節數組我的SQL Server數據庫:當我閱讀文件貯藏inputSteam數據庫和閱讀他們造成損壞的文件

private byte[] GetByteArrayFromFile(HttpPostedFileBase file) 
{ 
    using (var b = new BinaryReader(file.InputStream)) 
    return b.ReadBytes(file.ContentLength); 
} 

我得到一個損壞的例外與應用程序,我打開它像PDF文件,Excel文件。它似乎只適用於txt文件。

這裏是我用於檢索文件的代碼:

_response = context.HttpContext.Response; 
_response.ContentType = GetMimeType(Path.GetExtension(_fileDownloadName)); 
_response.AddHeader("Content-Disposition", "attachment; filename=" + _fileDownloadName); 
_response.OutputStream.Write(_buffer, 0, _buffer.Length); 
_response.Flush(); 
_stream.Close(); 
_response.Flush(); 
_response.End(); 
+0

在寫入文件之前是否有任何內容正在寫入輸出流?如果輸出緩衝被啓用,你可以嘗試_response.Clear()在寫入流之前 – 2013-02-18 09:15:29

+0

我設置HttpContext.Current.Response.BufferOutput = false,並且在寫入流之前我做了_response.Clear(),沒有運氣。 – segFault 2013-02-18 16:23:35

+0

不,您希望緩衝區爲true,否則它會在清除輸出之前刷新輸出。 – 2013-02-18 22:33:23

回答