标签:style blog http color 使用 os io strong
我们在开发web系统时有时会有以下需求:
要解决上述需求就可以使用Content-disposition来解决。第一个需求的解决办法是
"content-disposition",
public void ToDownload(string filename)
{
FileStream fileStream new FileStream(serverfilpath, FileMode.Open);
= fileStream.Length;
HttpContext.Current.Response.ContentType "application/octet-stream";
HttpContext.Current.Response.AddHeader("attachment; filename=\"" + );
////inline --- 在线打开
HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
= byte[fileSize];
fileStream.Read(fileBuffer, 0, (int)fileSize);
HttpContext.Current.Response.BinaryWrite(fileBuffer);
fileStream.Close();
HttpContext.Current.Response.End();
}
static string serverfilpath, = new FileStream(serverfilpath, FileMode.Open);
= fileStream.Length;
HttpContext.Current.Response.ContentType "application/octet-stream";
HttpContext.Current.Response.AddHeader("inline; filename=\"" + );
HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());
= byte[fileSize];
fileStream.Read(fileBuffer, 0, (int)fileSize);
HttpContext.Current.Response.BinaryWrite(fileBuffer);
fileStream.Close();
HttpContext.Current.Response.End();
}
static string filename)
{
return HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8);
}
简单的对上述代码做一下解析,ToDownload方法为将一个服务器上的文件(serverfilpath为服务器上的物理地址),以某文件名 (filename)在浏览器上弹出“文件下载”对话框,而ToOpen是将服务器上的某文件以某文件名在浏览器中显示/打开的。注意其中我使用了 UTF_FileName方法,该方法很简单,主要为了解决包含非英文/数字名称的问题,比如说文件名为“衣明志.doc”,使用该方法客户端就不会出现 乱码了。
需要注意以下几个问题:
Content-Disposition的使用和注意事项(转载),布布扣,bubuko.com
Content-Disposition的使用和注意事项(转载)
标签:style blog http color 使用 os io strong
原文地址:http://www.cnblogs.com/lorking/p/3927284.html