C # Get percorso completo del file
Domanda
Ho un controllo ASP FileUpload e sono upload:
C:\Documents and Settings\abpa\Desktop\TTPublisher\apache-tomcat-6.0.26\webapps\ttpub\WEB-INF\classes\org\gtfs\tmp\GTFS_Rail\routes.txt
Qual è il codice C # per afferrare questa intera stringa usando il codice seguente:
var pathOfCsvFile = Server.MapPath(ImportRoutes.FileName);
var adapter = new GenericParsing.GenericParserAdapter(pathOfCsvFile);
DataTable data = adapter.GetDataTable();
Lo so che le esigenze Server.MapPath ai cambiamenti.
UPDATE:
Utilizzando System.IO.Path.GetFullPath
mi ha dato il seguito di uscita:
pathOfCsvFile = "C:\\Program Files\\Common Files\\Microsoft Shared\\DevServer\\10.0\\routes.txt"
Soluzione
si stia mescolando fino comportamento client e server, che è facile da fare quando si esegue il test a livello locale. Il problema si stanno avendo è che il FileUploadControl (e HTML caricamento di file in generale) è specificamente progettato per non fornire con completa ??em> percorso del file. Questa sarebbe una violazione della privacy. Quello che è progettato per darvi è i dati binari del file che si stava caricato. In particolare si dovrebbe interrogare le proprietà FileUploadControl:. FileBytes o fileContent
Giusto per chiarire ulteriormente la questione, che cosa accadrebbe se l'utente del browser era in realtà su una macchina fisica diversa dal server web (il solito caso)? A cosa sarebbe il percorso completo del file sulla macchina client essere a voi sul server
Altri suggerimenti
Server.MapPath restituirà il percorso fisico in un file in o sotto la radice di applicazione. Se questo percorso si elenco è al di fuori della radice dell'applicazione, Server.MapPath non funzionerà.
È possibile mappare una directory virtuale in una cartella che si desidera utilizzare per il caricamento di file di attesa, che è quindi possibile scoprire con Server.MapPath.