Sfoglia un file dal mio PC utilizzando l'applicazione web in asp.net
-
27-09-2019 - |
Domanda
Ho un'applicazione web che ho caricato utilizzando IIS. Voglio che gli utenti che utilizzano l'applicazione sarebbe in grado di selezionare un file che si trova sul loro (l'utente) computer e leggere il suo contenuto.
Il codice è:
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 eseguo dal mio pc funziona. Ma quando provo a farlo funzionare dal IIS mi dà il seguente errore:
Could not find a part of the path 'C:\Documents and Settings\myUser\Desktop\file.txt'.
Capisco che la sopraelevazione un'applicazione di leggere il file dal PC dell'utente. Qualsiasi idea di come posso farlo funzionare?
Grazie!
Greg
Soluzione
Questo è fatto per motivi di sicurezza -. Un browser non ha accesso al file system degli utenti
Non v'è alcun modo per ovviare a questo, come tutte le altre tecnologie in esecuzione all'interno di un browser, presentano questa funzionalità e limitati (ancora una volta, per motivi di sicurezza).
Il più vicino si può ottenere è di utilizzare un <input type="file">
che consente all'utente di selezionare un file da caricare.
Altri suggerimenti
il percorso del file caricati in IE 8 è un percorso completo. È possibile ottenere il nome del file dal nome completo. Combinare percorso del server e il nome del file prima di salvataggio del file