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"

È stato utile?

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 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top