提示用户在ASP.NET C中保存/打开文件#

Ber*_*ker 13 c# asp.net

不应该很难找到如何做到这一点.基本上我正在尝试取一个字符串,让客户端点击按钮时保存它.它应该弹出一个Save/Open对话框.没有额外的花里胡哨或任何东西.这不是火箭科学,(或许我会想到).

似乎有很多不同的方式,(StreamWriter,HttpResponse等),但我找不到任何能够正常工作或解释正在发生的事情的例子.提前致谢.

我找到的众多代码块中的一个例子......

(这只是一个例子,请不要以此为基础做出答案.)

String FileName = "FileName.txt";
String FilePath = "C:/...."; //Replace this
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";");
response.TransmitFile(FilePath);
response.Flush();
response.End();
Run Code Online (Sandbox Code Playgroud)

第2行说要替换那个字符串.怎么样?这段代码被宣传为提出一个对话框.我不应该在代码中设置路径,对吧?

编辑:最终结果(再次编辑,删除必须在结束前();)

        string FilePath = Server.MapPath("~/Temp/");
        string FileName = "test.txt";

        // Creates the file on server
        File.WriteAllText(FilePath + FileName, "hello");

        // Prompts user to save file
        System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
        response.ClearContent();
        response.Clear();
        response.ContentType = "text/plain";
        response.AddHeader("Content-Disposition", "attachment; filename=" + FileName + ";");
        response.TransmitFile(FilePath + FileName);
        response.Flush();

        // Deletes the file on server
        File.Delete(FilePath + FileName);

        response.End();
Run Code Online (Sandbox Code Playgroud)

Bla*_*hma 5

第2行(FilePath)表示服务器上文件的路径

第8行:

response.TransmitFile(FilePath);
Run Code Online (Sandbox Code Playgroud)

将特定文件传输到客户端,然后弹出保存对话框.

如果您不传输文件,我不确定是否会弹出对话框(即使您设置了标题)

无论如何,我认为第8行应该是:

    response.TransmitFile(FilePath + FileName);
Run Code Online (Sandbox Code Playgroud)