Response.Clear();
// 添加待下载文件的头信息
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(MusicPathTemp,System.Text.Encoding.UTF8));
// 指定待下载信息为流信息不由客户端读取而直接下载
Response.ContentType = "application/octet-stream";
// 向客户端发送流信息
Response.WriteFile(MusicPathTemp);
// 页面工作结束
Response.End();MusicPathTemp为文件路径,如“http://202.197.77.128/qgzxol/music/许巍/每一刻都是崭新的/喝茶去.mp3”会出现如下问题:路径为虚拟路径,如何解决?由于Web服务器和文件下载服务器分离的,怎么办?
// 添加待下载文件的头信息
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(MusicPathTemp,System.Text.Encoding.UTF8));
// 指定待下载信息为流信息不由客户端读取而直接下载
Response.ContentType = "application/octet-stream";
// 向客户端发送流信息
Response.WriteFile(MusicPathTemp);
// 页面工作结束
Response.End();MusicPathTemp为文件路径,如“http://202.197.77.128/qgzxol/music/许巍/每一刻都是崭新的/喝茶去.mp3”会出现如下问题:路径为虚拟路径,如何解决?由于Web服务器和文件下载服务器分离的,怎么办?
(2)如果你的文件下载服务器不在局域网内或没有实现VPN,可以在你的文件下载服务器上架一个Web站点用于下载文件,这样你的外部Web在遇到下载请求时先到文件下载服务器上的Web站点下载文件,然后在传给客户端。我曾经有个类似问题,不过这样做会存在效率问题^_^
cat_hsfz() ,方案不可行,因为不在同一个web服务器上,还有什么更好的方案吗,求助!
strFileName =HttpUtility.UrlEncode(reader["Name"].ToString(),System.Text.Encoding.UTF8);
strFilePath=System.Web.HttpContext.Current.Request.MapPath("UpFiles/")+Request.QueryString["ID"].ToString()+"."+reader["Type"].ToString();
Response.AppendHeader("Content-Disposition","attachment;filename="+strFileName);
Response.WriteFile(strFilePath);
Response.End();