ASP.NET下文件下载时重命名
来源:互联网 发布:苹果维修预约软件 编辑:程序博客网 时间:2024/06/05 11:13
string FileUlr = Server.MapPath("~/images/test/");//获取文件所在目录
其实该方法的最核心东西就是在 Response.AppendHeader("Content-dispostion","attachment,filename="+DownloadFileName);
这块 ,Content-dispostion是mime协议的扩展,mime协议指示mime用户代理如何显示附加的文件。当Internet Explorer 接收到头时,他会激活文件下载对话框,他的文件明框自动填充了头中指定的文件名。这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户问询保存位置。当然这种情况在ie9中已不存在了,ie9会自动的保存在一开始设定好的文件夹下。ie9默认的文件保存位置为user/DownLoad文件夹下。
到这里,整个下载重命名就做好了。欢迎提取不同的意见。
FileUlr += "5.jpg";//获取现有文件所在位置
string OutFileName ="NewFileName";
if (File.Exists(FileUlr))//判断该文件是否存在
{
FileInfo fi = new FileInfo(FileUlr);
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
string tempfile = Path.GetFileName(FileUlr);//获取文件名称
tempfile = OutFileName + tempfile.Substring(tempfile.LastIndexOf("."));
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
// 这一步调试时中文文件名也是正常。
string DownloadFileName = null;
string browser = this.Context.Request.UserAgent.ToUpper();
if (browser.Contains("MS") == true && browser.Contains("IE") == true)//判断当前用户使用的浏览器类型
{
DownloadFileName = HttpUtility.UrlEncode(tempfile); // 这一步调试时中文文件名也是正常。在ie中中文显示正常,但在firefox中,中文依然为
//乱码,所以这里要判断用户使用浏览器类型,来保持中文文件名的正常显示
}
else if (browser.Contains("FIREFOX") == true)
{
DownloadFileName = "\"" + tempfile + "\"";
}
else
{
DownloadFileName = HttpUtility.UrlEncode(tempfile);// 这一步弹出下载保存的对话框,出现文件名乱码,但变量中的文件名是正常的。
}
Response.AppendHeader("Content-Disposition", "attachment;filename=" + DownloadFileName);//为用户保存文件是显示的名称
Response.AppendHeader("Content-Length", fi.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(FileUlr);//用response来返回文件的路径
Response.Flush();//清空response
Response.End();
}
else
{
Response.Write("<script langauge=javascript>alert(‘文件不存在!’);</script>");
Response.End();
}
其实该方法的最核心东西就是在 Response.AppendHeader("Content-dispostion","attachment,filename="+DownloadFileName);
这块 ,Content-dispostion是mime协议的扩展,mime协议指示mime用户代理如何显示附加的文件。当Internet Explorer 接收到头时,他会激活文件下载对话框,他的文件明框自动填充了头中指定的文件名。这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户问询保存位置。当然这种情况在ie9中已不存在了,ie9会自动的保存在一开始设定好的文件夹下。ie9默认的文件保存位置为user/DownLoad文件夹下。
到这里,整个下载重命名就做好了。欢迎提取不同的意见。
摘自:http://www.liushuige.net/newweb/html/news/info.aspx?id=32
- ASP.NET下文件下载时重命名
- 目录下文件重命名
- ASP.NET 在下载文件时对其重命名
- asp.net下文件的上传
- Asp.net网站下文件解释
- android下文件下载
- Asp.Net中文件下载
- C++实现某文件夹下文件重命名
- Python批量对目录下文件重命名
- 用python 重命名文件夹下文件
- 读取文件夹下文件,获取文件名,重命名
- asp.net中文件下载时中文名称显示为乱码
- ASP.NET中文件的下载
- ASP.NET中文件下载四方法
- ASP.NET中文件上传与下载
- Python实例31[批量对目录下文件重命名]
- Struts2.0下文件下载_Excel
- Linux环境下文件不能下载
- iOS开发之transitionFromViewController方法的使用
- 控制文件管理
- Django使用MySQL数据库
- Android使用JNI实现Java与C之间传递数据
- 矩阵经典操作(1)
- ASP.NET下文件下载时重命名
- html弹出框并且页面变灰
- 开发环境搭建 Ubuntu+vmware 上网
- 多线程的那点儿事(之多核编程)
- Android应用与外部元素互动
- 常用命令
- Android中使用jni,ndk的C语言回调方法
- visual studio 2010 中使用严格的C99进行编译
- Android应用程序启动时发生AndroidRuntime : ClassNotFoundException for Activity class的解决方法