Просмотрите файл с моего компьютера, используя веб-приложение в ASP.NET

StackOverflow https://stackoverflow.com/questions/3458208

Вопрос

У меня есть веб-приложение, которое я загрузил с помощью 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 является полным путем. Вы можете получить имя файла от полного имени. Комбинируйте путь к серверу и имя файла перед сохранением файла

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top