将inputStream存储到数据库并读取它们会导致文件损坏

时间:2013-02-18 08:57:12

标签: c# file-upload bytearray jquery-file-upload

我使用C#HttpPostedFileBase使用以下代码将字节数组保存到我的sql server数据库:

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();

1 个答案:

答案 0 :(得分:0)

尝试关闭响应输出缓冲(请参阅HttpResponse.BufferOutput Property):

HttpContext.Current.Response.BufferOutput = false;

此外,本文可能很有用:Range-Specific Requests in ASP.NET,请参阅“使用RangeRequestHandlerBase HTTP处理程序”一节。