在我的ASP.NET MVC的网站,我要读一些名字和电子邮件由separeted一个txt文件“;”。 在那之后,我要救这个txt文件到数据库中的每一行。
谷歌搜索的时候,我发现了一些片段,但在所有这些我都用txt文件路径。
但是,我怎么能得到这条道路? 该文件可能是在用户的机器的任何地方!
谢谢!!
在我的ASP.NET MVC的网站,我要读一些名字和电子邮件由separeted一个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
所有属性列出其他应用程序数据文件夹和东西,但一旦你的应用程序可执行文件的路径这给你背景下,如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"