Home Articles

将文件写入Web服务器 - ASP.NET

Asked
Viewed 823 times
42

我只想将TextBox控件的内容写入Web服务器目录根目录中的文件...如何指定它?

请记住,我正在本地测试...它一直在将文件写入我的程序文件\ visual studio \ Common \ IDE目录而不是我的项目目录(我假设root是Web服务器触发的时候) .

我的问题与在web.config中指定正确的位置有关吗?我试过了,但仍然没有...

非常感谢...

protected void TestSubmit_ServerClick(object sender, EventArgs e)
    {
        StreamWriter _testData = new StreamWriter("data.txt", true);
        _testData.WriteLine(TextBox1.Text); // Write the file.
        _testData.Close(); // Close the instance of StreamWriter.
        _testData.Dispose(); // Dispose from memory.       
    }

4 Answers

  • 73
    protected void TestSubmit_ServerClick(object sender, EventArgs e)
    {
      using (StreamWriter _testData = new StreamWriter(Server.MapPath("~/data.txt"), true))
     {
      _testData.WriteLine(TextBox1.Text); // Write the file.
     }         
    }
    

    Server.MapPath采用虚拟路径并返回绝对路径 . “〜”用于解析应用程序根目录 .

  • 29

    请记住,上传到Web服务器后,您还必须为IUSR帐户授予对该文件夹的写入权限 .

    我个人建议不要允许对根文件夹进行写访问,除非你有充分的理由这样做 . 然后你需要小心你允许保存哪种文件,这样你就不会无意中允许某人编写自己的ASPX页面 .

  • 16

    File 类中有 WriteAllText 等方法,用于文件的常见操作 .

    使用 MapPath 方法获取Web应用程序中文件的物理路径 .

    File.WriteAllText(Server.MapPath("~/data.txt"), TextBox1.Text);
    
  • 8
    protected void TestSubmit_ServerClick(object sender, EventArgs e)
    {
        using (StreamWriter w = new StreamWriter(Server.MapPath("~/data.txt"), true))
        {
            w.WriteLine(TextBox1.Text); // Write the text
        }
    }
    

Related