C# 从javascript强制打开文本文件(文件位于服务器上)
单击“生成”按钮后,我生成了几个文件。成功生成文件并存储在服务器上后,用户将收到相同的文件,以便下载 我尝试将扩展名更改为浏览器无法直接打开的已知扩展名,即.doc。它作为一个弹出窗口显示下载文件 但是,我想将扩展更改为更有意义的扩展,例如.cfg。问题是,使用.cfg或.txt,浏览器会自动打开文件(因为它是一个文本文件)。我怎样才能覆盖这个 代码如下: 服务器端:C# 从javascript强制打开文本文件(文件位于服务器上),c#,file,extjs,C#,File,Extjs,单击“生成”按钮后,我生成了几个文件。成功生成文件并存储在服务器上后,用户将收到相同的文件,以便下载 我尝试将扩展名更改为浏览器无法直接打开的已知扩展名,即.doc。它作为一个弹出窗口显示下载文件 但是,我想将扩展更改为更有意义的扩展,例如.cfg。问题是,使用.cfg或.txt,浏览器会自动打开文件(因为它是一个文本文件)。我怎样才能覆盖这个 代码如下: 服务器端: string[] L_TextFile = P_Data.M_Content.Split('|'); System.IO.F
string[] L_TextFile = P_Data.M_Content.Split('|');
System.IO.File.WriteAllLines(@"c:\files\file.cfg", L_TextFile);
response = "1";
return response;
extjs ajax调用成功代码:
success: function(P_Response){
var res = Ext.util.JSON.decode(P_Response.responseText);
if(res == '1') window.location.href'/files/file.cfg';
else ShowError('An error has occured while generating the text file.');
},
基本上,使用.doc一切正常,但我想将其更改为.cfg
有任何帮助吗?将响应MIME类型设置为“应用程序/八位字节流”,并可以选择设置文件名 例如:
response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
response.AddHeader("Content-Type", "application/octet-stream");
将响应MIME类型设置为
“应用程序/八位字节流”
,并可以选择设置文件名
例如:
response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
response.AddHeader("Content-Type", "application/octet-stream");
看这个看这个我的回答是一个字符串。您正在创建HTTP响应吗?确切地说,它是System.Web.HttpResponse实例。我的响应是字符串。您正在创建HTTP响应吗?确切地说,它是System.Web.HttpResponse实例。