Frage

Ich habe ein ASP Fileupload-Steuerelement, und ich bin das Hochladen:

C:\Documents and Settings\abpa\Desktop\TTPublisher\apache-tomcat-6.0.26\webapps\ttpub\WEB-INF\classes\org\gtfs\tmp\GTFS_Rail\routes.txt

Was ist der C # -Code diese gesamte Zeichenfolge mit dem Code zu greifen unter:

var pathOfCsvFile = Server.MapPath(ImportRoutes.FileName);
var adapter = new GenericParsing.GenericParserAdapter(pathOfCsvFile);
DataTable data = adapter.GetDataTable();

Ich weiß, dass Server.MapPath Bedürfnisse zu ändern.

UPDATE:

Mit System.IO.Path.GetFullPath gab mir den folgenden Ausgang:

pathOfCsvFile = "C:\\Program Files\\Common Files\\Microsoft Shared\\DevServer\\10.0\\routes.txt"

War es hilfreich?

Lösung

Sie sind Vertauschen Client- und Server-Verhalten, das einfach zu tun, wenn Sie vor Ort testen. Das Problem, das Sie haben, ist, dass die FileUploadControl (und HTML im allgemeinen Datei-Upload) ist speziell nicht Sie bietet mit dem voll Pfad zur Datei. Das wäre eine Verletzung der Privatsphäre sein. Was es is entworfen, um Ihnen die binären Daten der Datei ist, die selbst hochgeladen wurde. Insbesondere sollten Sie die Eigenschaften auf FileUploadControl abfragen. FileBytes oder filecontent

Just, um die Frage zu klären, würde passieren, was passiert, wenn der Browser-Benutzer tatsächlich auf eine physikalisch andere Maschine vom Web-Server ist (der Normalfall)? Was würde der vollständige Pfad der Datei auf dem Client-Rechner , um Sie auf dem Server

Andere Tipps

Server.MapPath den physischen Pfad zu einer Datei in oder unterhalb der Anwendungsstamm zurück. Wenn dieser Pfad Liste ist außerhalb der Anwendung Wurzel, Server.MapPath wird nicht funktionieren.

Sie können ein virtuelles Verzeichnis in einen Ordner Karte Sie halten das Hochladen von Dateien verwenden möchten, die Sie dann mit Server.MapPath entdecken können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top