我現在用的是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();
在寫入文件之前是否有任何內容正在寫入輸出流?如果輸出緩衝被啓用,你可以嘗試_response.Clear()在寫入流之前 – 2013-02-18 09:15:29
我設置HttpContext.Current.Response.BufferOutput = false,並且在寫入流之前我做了_response.Clear(),沒有運氣。 – segFault 2013-02-18 16:23:35
不,您希望緩衝區爲true,否則它會在清除輸出之前刷新輸出。 – 2013-02-18 22:33:23