出口一词与文件似乎没有工作
-
21-09-2019 - |
题
我出口数据表给字,当我传递了一个文件命名它似乎没有得到该文件中的名称开放/省对话框。
这里是我在做什么
public static void Convertword(DataTable dt, HttpResponse Response,string filename)
{
try
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=" + filename + ".doc");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.word";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new System.Web.UI.HtmlTextWriter(stringWrite);
System.Web.UI.WebControls.GridView dg = new System.Web.UI.WebControls.GridView();
dg.DataSource = dt;
dg.DataBind();
dg.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
}
catch(Exception err)
{
throw err;
}
}
当我传递文件 "report(" + System.DateTime.Now.ToString("dd/MM/yyyy");
+ ")"
它不会把价值为 日/月/年 相反,它显示了文件命名为 dd_MM_YYYY
解决方案
几点关于你的码:
- 你是设定的内容类型的头一个字文件,但你实际发送HTML的内容呈现内
dd/MM/YYYY
不是一个有效的文件,因为/
符。- 你不需要
try/catch
如果在catch
发言你只是做throw err
- 叫
Response.End
在结束是不必要的。 - 总是用
using
声明在处理一次性目的(例如河流和读者/作家保证Dispose
调用的方法在所有情况。
其他提示
您应该使用像一个文件名
String.Format("report{0:ddMMyyyy}.doc", DateTime.Now);
一个文件名不能有“/".
这很可能是因为/
不是文件名的有效字符。您的姓名必须符合一定的标准,一定不要使用任何的
* . " / \ [ ] : ; | = ,
如果您在文件名中有斜杠,我认为这将打破的URL文件,因此斜线在某些时候被替换?
不隶属于 StackOverflow