Pergunta

Eu tenho um aplicativo da web que carreguei usando o IIS. Quero que os usuários que usem o aplicativo possam selecionar um arquivo localizado no computador (o usuário) e ler seu conteúdo.

O código é:

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();
            }         
        }

Quando eu o corro do meu PC, ele funciona. Mas quando tento executá -lo do IIS, isso me dá o seguinte erro:

Could not find a part of the path 'C:\Documents and Settings\myUser\Desktop\file.txt'. 

Entendo que o aplicativo não pode ler o arquivo do PC do usuário. Alguma ideia de como posso fazer funcionar?

Obrigado!

Greg

Foi útil?

Solução

Isso é feito por motivos de segurança - um navegador não tem acesso ao sistema de arquivos do usuário.

Não há como contornar isso, pois todas as outras tecnologias que executam dentro de um navegador são sandboxed e limitadas (novamente, por razões de segurança).

O mais próximo que você pode obter é usar um <input type="file"> Isso permite ao usuário selecionar um arquivo para fazer upload.

Outras dicas

O caminho do arquivo de upload no IE 8 é um caminho completo. Você pode obter o nome do arquivo do nome completo. Combine o caminho do servidor e o nome do arquivo antes de salvar o arquivo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top