1.二进制数据转流
System.IO.Stream ms = new MemoryStream();
ms.Write(bytes, 0, bytes.Length);
ms.Flush();
ms.Position = 0;
2.二进制数据添加到压缩包
ZipHelper zipHelper = new ZipHelper();
zipHelper.AddFile(fileName, bytes.Length);
zipHelper.AppentFileBytes(bytes, bytes.Length);
//压缩完成
zipHelper.Complete();
3.压缩包转流
System.IO.Stream ms = new MemoryStream();
ms = zipHelper.GetStream();
ms.Position = 0;
4.文件输出
return File(ms, “application/octet-stream ; Charset=UTF8”, HttpUtility.UrlEncode(realFileName, System.Text.Encoding.UTF8));
5.通过虚拟目录下载文件
1)iis添加支持的MIME类型
.log=》text/plain
.dwg=》application/autocad
var mbFullPath = mbRootFolder + folderName + fileFullPath;
var dirStr = mbRootFolder + folderName + fileFullPath.Substring(0,fileFullPath.LastIndexOf('\\'));
DirectoryInfo directoryInfo = new DirectoryInfo(dirStr);
if (!directoryInfo.Exists) //判断 文件夹是否存在
{
directoryInfo.Create();
}
HttpWebRequest request = HttpWebRequest.Create(fullPath) as HttpWebRequest;
long totalBytes = request.ContentLength;
request.Method = "GET";
request.ContentLength = 0;
request.ProtocolVersion = new System.Version(1, 1);
//发送请求并获取相应回应数据
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
//直到程序响应才开始向目标网页发送Post请求
Stream responseStream = response.GetResponseStream();
byte[] bArr = new byte[1024];
int size = responseStream.Read(bArr, 0, 1024);
FileStream file = new FileStream(mbFullPath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
while (size > 0)
{
// 将字节文件写入流
file.Write(bArr, 0, size);
size = responseStream.Read(bArr, 0, 1024);
}
file.Flush();
file.Close();
6.window.print打印分页增加表头和表尾
打印的时候,要求每页上都要有表头。定义 thead,样式设置成:style="display:table-header-group"。
如果要求有表尾,定义其tfoot,样式设置成 :style="display:table-footer-group"。