Webサーバーにファイルを書き込む - ASP.NETを
-
13-09-2019 - |
質問
私は単にWebサーバのディレクトリのルートにあるファイルにTextBoxコントロールの内容を書きたい...どのように私はそれを指定するのですか?
心の中でベア、私はときに、Webサーバのルートがあると仮定した場合である(それは私のプログラムファイルへのファイルの書き込みを続けて...ローカルでこれをテストする\ Visual Studioの\共通\ IDEディレクトリではなく、私のプロジェクトのディレクトリにしています)オフ発射します。
私の問題は私の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. }
解決
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の仮想パスをとり、絶対いずれかを返します。 「〜」アプリケーションのルートに解決するために使用されます。
他のヒント
ファイルの一般的な操作のためのWriteAllText
クラスのFile
のような方法があります。
Webアプリケーションでファイルの物理パスを取得するにはMapPath
メソッドを使用します。
File.WriteAllText(Server.MapPath("~/data.txt"), TextBox1.Text);
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
}
}
あなたはまた、あなたのウェブサーバーにアップロードいったんフォルダのIUSRアカウントの書き込みアクセス権を与える必要があります覚えておいてください。
あなたがそうするための正当な理由がない限り、個人的に私は、ルートフォルダへの書き込みアクセスを許可しないことをお勧めします。そして、あなたはあなたがうっかり誰かが自分のASPXページを作成することはできませんので、保存することを可能にするファイルの種類を注意する必要があります。
所属していません StackOverflow