Zapis pliku na serwer WWW - ASP.NET

Chcę po prostu zapisać zawartość kontrolki TextBox do pliku w katalogu głównym serwera www... jak to określić?

Pamiętaj, że testuję to lokalnie... zapisuje plik do mojego katalogu program files \ visual studio \ Common \ IDE zamiast katalogu mojego projektu (gdzie zakładam, że root jest, gdy serwer WWW się odpala).

Czy mój problem ma coś wspólnego z określeniem właściwej lokalizacji w mojej sieci.config? Próbowałem to i nadal nic...

Wielkie dzięki...
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.       
    }
Author: Woody, 2009-08-12

4 answers

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.
 }         
}

Serwer.MapPath wybiera ścieżkę wirtualną i zwraca ścieżkę absolutną. "~"jest używany do rozdzielenia do głównego katalogu aplikacji.

 80
Author: Darthg8r,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-23 22:28:28

Istnieją metody podobne do WriteAllText w klasie File do typowych operacji na plikach.

Użyj metody MapPath, aby uzyskać fizyczną ścieżkę do pliku w aplikacji internetowej.

File.WriteAllText(Server.MapPath("~/data.txt"), TextBox1.Text);
 35
Author: Guffa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-17 10:13:55
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
    }
}
 17
Author: Sean Bright,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-09 20:33:07

Pamiętaj, że po przesłaniu folderu na serwer WWW będziesz musiał również dać dostęp do zapisu konta IUSR dla tego folderu.

Osobiście polecam nie zezwalać na zapis do folderu głównego, chyba że masz ku temu dobry powód. A potem musisz uważać na to, jakie pliki zezwalasz na zapisywanie, aby nie pozwolić przypadkowo komuś pisać własnych stron ASPX.

 8
Author: Spencer Ruport,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-12 21:40:21