Navegue um arquivo do meu PC usando o aplicativo Web no ASP.NET
-
27-09-2019 - |
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
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