Просмотрите файл с моего компьютера, используя веб-приложение в ASP.NET
-
27-09-2019 - |
Вопрос
У меня есть веб-приложение, которое я загрузил с помощью IIS. Я хочу, чтобы пользователи, использующие приложение, смогут выбрать файл, расположенный на компьютере (пользователю), и прочитать его содержимое.
Код:
TextReader trs = new StreamReader(faFile.Value);
DataAccessLayer.clearFA();
string line = trs.ReadLine();
// Read all unneeded data
while (line != "** Start Data **")
{
line = trs.ReadLine();
}
line = trs.ReadLine();
while (line != null)
{
string[] words = line.Split('*');
// There is no message
if (words[4] == "")
{
DataAccessLayer.insertIntoFA(Int32.Parse(words[1]), words[3].Replace("'", ""));
}
else
{
DataAccessLayer.insertIntoFA(Int32.Parse(words[1]), words[4].Replace("'", ""));
}
line = trs.ReadLine();
}
}
Когда я бегу с его компьютера, он работает. Но когда я пытаюсь запустить его из IIS, это дает мне следующую ошибку:
Could not find a part of the path 'C:\Documents and Settings\myUser\Desktop\file.txt'.
Я понимаю, что приложение не может прочитать файл с пользователя пользователя. Любая идея, как я могу заставить это работать?
Спасибо!
Грег
Решение
Это сделано для соображений безопасности - браузер не имеет доступа к файловой системе пользователя.
Нет никакого способа обойти это, так как все другие технологии, работающие внутри браузера, являются песочниками и ограниченными (опять же, по соображениям безопасности).
Самый близкий, который вы можете получить, это использовать <input type="file">
Это позволяет пользователю выбрать файл для загрузки.
Другие советы
Путь файла загрузки в IE 8 является полным путем. Вы можете получить имя файла от полного имени. Комбинируйте путь к серверу и имя файла перед сохранением файла