我现在用的是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