C# 在ASP.NET中创建文件
我正在努力做到这一点C# 在ASP.NET中创建文件,c#,.net,asp.net,C#,.net,Asp.net,我正在努力做到这一点 File.WriteAllText(@"C:\sample.text", filename); 其中filename是一个字符串类型变量,但我认为通过ASP.NET我们无法创建文件 有谁能给我一个在系统上创建文件的解决方案吗 甚至连我也做不到这一点 Clipboard.SetText(filename); 这给了我一个例外 或者我是这样想的 Response.Reditect("newpage.aspx", _blank, filename) // can this b
File.WriteAllText(@"C:\sample.text", filename);
其中filename是一个字符串类型变量,但我认为通过ASP.NET我们无法创建文件
有谁能给我一个在系统上创建文件的解决方案吗
甚至连我也做不到这一点
Clipboard.SetText(filename);
这给了我一个例外
或者我是这样想的
Response.Reditect("newpage.aspx", _blank, filename) // can this be possible?
将打开一个新页面,其中包含“文件名”中所包含的文本。在我看来,您有两个选项,首先请用户下载该文件:
FileInfo file = new System.IO.FileInfo(@"C:\sample.text");
if (file.Exists)
{
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
}
或者,按照您的建议,将内容输出到浏览器:
但是,我不建议使用下面的方法,因为它会将文件的内容以文本的形式输出到浏览器,请注意,我对其进行了html编码,这样就不会通过文本文件注入html
FileInfo file = new System.IO.FileInfo(@"C:\sample.text");
if (file.Exists)
{
Response.Clear();
Response.Write(Server.HtmlEncode(File.ReadAllText(file.FullName)));
Response.End();
}
为什么你认为你不能使用WriteAllText?您是否收到错误?您可以写入web服务器上的本地文件,但需要权限才能执行此操作。默认情况下,网站以特定IIS用户帐户运行,因此,除非您有一个目录标记为该用户可写,否则该目录将无法工作。。发布错误将帮助您获得更好的响应。我可以用我的电脑创建文件,因为我是服务器,但其他用户将无法创建文件,因为通过scrpting语言,您无法创建文件,否则将导致黑客!!否则,用户将授予其他人在其上创建文件的权限PC@shruti-没错,是否要在客户端上创建文件?或者只是在服务器上尝试,但它不起作用?最重要的问题是你想实现什么?是否只想向用户显示文本,而不需要保存文件?还是要将文件保存到客户端PC上?在一个示例中,您试图编写一个文件,在另一个示例中,您建议在浏览器中显示文本,这意味着不需要文件?如果你能突出你想要达到的目标,这会有所帮助。