Parcourir un fichier de mon pc en utilisant l'application web en asp.net
-
27-09-2019 - |
Question
J'ai une application web que je téléchargé en utilisant IIS. Je veux que les utilisateurs à l'aide de l'application seraient en mesure de sélectionner un fichier situé sur leur (l'utilisateur) ordinateur et lire son contenu.
Le code est:
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();
}
}
Quand je le lance de mon pc ça marche. Mais lorsque je tente de l'exécuter à partir du IIS il me donne l'erreur suivante:
Could not find a part of the path 'C:\Documents and Settings\myUser\Desktop\file.txt'.
Je comprends que le dévers d'application lire le fichier à partir du PC de l'utilisateur. Toute idée comment puis-je le faire fonctionner?
Merci!
Greg
La solution
Ceci est fait pour des raisons de sécurité -. Un navigateur n'a pas accès au système de fichiers de l'utilisateur
Il n'y a pas moyen de contourner cela, comme toutes les autres technologies en cours d'exécution dans un navigateur sont sandbox et limitées (encore une fois, pour des raisons de sécurité).
Le plus proche que vous pouvez obtenir est d'utiliser un <input type="file">
qui permet à l'utilisateur de sélectionner un fichier à télécharger.
Autres conseils
Le chemin du fichier de téléchargement dans IE 8 est un chemin complet. Vous pouvez obtenir le nom de fichier du nom complet. Combiner le chemin du serveur et nom du fichier avant l'enregistrement de fichiers