私の ASP.NET MVC Web サイトでは、';' で区切られたいくつかの名前と電子メールを含む txt ファイルを読み取る必要があります。その後、この txt ファイルの各行をデータベースに保存する必要があります。
グーグルで調べてみると、いくつかのスニペットが見つかりましたが、それらすべてで txt ファイル パスを使用する必要があります。
しかし、どうすればこのパスを取得できますか? このファイルは、ユーザーのマシンのどこにでもある可能性があります!
ありがとう!!
私の ASP.NET MVC Web サイトでは、';' で区切られたいくつかの名前と電子メールを含む txt ファイルを読み取る必要があります。その後、この txt ファイルの各行をデータベースに保存する必要があります。
グーグルで調べてみると、いくつかのスニペットが見つかりましたが、それらすべてで txt ファイル パスを使用する必要があります。
しかし、どうすればこのパスを取得できますか? このファイルは、ユーザーのマシンのどこにでもある可能性があります!
ありがとう!!
アップロードされたファイルのフル パスを取得することはできません。これは、ファイルをアップロードしたユーザーのプライバシー違反になります。
代わりに、アップロードされた Request.Files を読み取る必要があります。例えば:
HttpPostedFile file = Request.Files[0];
using (StreamReader reader = new StreamReader(file.InputStream))
{
while ((string line = reader.ReadLine()) != null)
{
string[] addresses = line.Split(';');
// Do stuff with the addresses
}
}
asp.net Web ページ モデルを使用している場合Server.MapPath("~/")
は、サイトのルートを取得するために機能するため、必要なパスを渡します。電話する必要があるかもしれません
HttpContext.Current.Server.MapPath("~/");
たとえば、テキスト ファイルが保存されるフォルダーは次のとおりです。
string directoryOfTexts = HttpContext.Current.Server.MapPath("~/txtdata/");
取得したら、それから読み取るだけで、StreamReader を実行できます。
string directoryOfTexts = HttpContext.Current.Server.MapPath("~/txtdata/");
string path = directoryOfTexts + "myfile.txt";
string alltextinfile = "";
if (File.Exists(path))
{
using (StreamReader sr = new StreamReader(path))
{
//This allows you to do one Read operation.
alltextinfile = sr.ReadToEnd());
}
}
これがデスクトップ アプリケーションの場合、Applcation クラスには次のすべての情報が含まれます。
http://msdn.microsoft.com/en-us/library/system.windows.forms.application.startuppath.aspx
Application.StartupPath
すべてのプロパティは、他の appdata フォルダーなどを一覧表示しますが、実行可能ファイルへのアプリケーション パスを取得すると、Application.LocalUserAppDataPath
.
http://msdn.microsoft.com/en-us/library/system.windows.forms.application_properties.aspx
コンテンツが十分に小さい場合は、データベースに保存する前に、HashTable
またはジェネリックに保存することもできます。List<String>
var hpf = Request.Files[file] as HttpPostedFile;
HTML のフォームにはenctype="mulitipart/form-data"