Вопрос по asp.net-mvc – Как получить полный путь к загруженному файлу в C # 3.0?

0

На моем веб-сайте ASP.NET MVC я должен прочитать текстовый файл с некоторыми именами и электронными письмами, разделенными символом & amp ;; После этого мне нужно сохранить каждую строку этого текстового файла в базе данных.

Погуглив, я нашел несколько фрагментов, но во всех я должен использовать путь к txt-файлу.

Но как я могу получить этот путь? Этот файл может находиться где угодно на компьютере пользователя!

Спасибо!!

@Jacob - пользователь выбирает текстовый файл, и когда он нажимает на определенную кнопку, вызывается действие. В этом действии я должен прочитать все данные этого текстового файла и сохранить их в базе данных. AndreMiranda
Это для сайта ASP.NET? heavyd
ASP.NET MVC, хэвидид. AndreMiranda

Ваш Ответ

3   ответа
4

рушением конфиденциальности пользователя, загрузившего файл.

Вместо этого вам нужно будет прочитать загруженные файлы 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
    }
}
Error: User Rate Limit Exceeded AndreMiranda
Error: User Rate Limit Exceeded AndreMiranda
1

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> перед сохранением в базу данных.

Error: User Rate Limit Exceeded AndreMiranda
0
var hpf = Request.Files[file] as HttpPostedFile; 

enctype="mulitipart/form-data"

Похожие вопросы