关于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));