0

我正在使用 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();
4

1 回答 1

0

尝试关闭响应输出缓冲(参见HttpResponse.BufferOutput 属性):

HttpContext.Current.Response.BufferOutput = false;

此外,这篇文章可能很有用:ASP.NET 中的 Range-Specific Requests,请参阅“使用 RangeRequestHandlerBase HTTP 处理程序”部分。

于 2013-02-18T09:10:14.313 回答