日期:2014-05-17  浏览次数:20527 次

关于Content-disposition的用法出错,请大神们指点下!
关于网页下载的,下载文件不会在浏览器打开或播放,下面这段代码是我在网上找到转载最多的。
现在有两个问题:

1、一个页面有好几个下载文件,下面这段代码放在CS中可以通用吗?

2、有UTF_FileName是什么意思?让文件名中文不乱码?cs文件提示它未定义,要如何处理?

public static void ToDownload(string serverfilpath,string filename)

{

FileStream fileStream = new FileStream(serverfilpath, FileMode.Open);

long fileSize = fileStream.Length;

HttpContext.Current.Response.ContentType = "application/octet-stream";

HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + UTF_FileName(filename) + "mp4\;

HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString());

byte[] fileBuffer = new byte[fileSize];

fileStream.Read(fileBuffer, 0, (int)fileSize);

HttpContext.Current.Response.BinaryWrite(fileBuffer);

fileStream.Close();

HttpContext.Current.Response.End();

}


------解决方案--------------------
1、一个页面有好几个下载文件,下面这段代码放在CS中可以通用吗?

肯定不行的呀,否则就不存在在线压缩的应用了,要先在线压缩打包成.zip,然后下载.zip


2、有UTF_FileName是什么意思?让文件名中文不乱码?cs文件提示它未定义,要如何处理?


 Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", HttpUtility.UrlEncode(filename), System.Text.Encoding.UTF8));