2017-08-16 3 views
2

In meiner asp.net-Anwendung schreibe ich eine Datei in Code hinter. Ich möchte dann diese Datei wie folgt in einen Handler verwenden, aber ich bekomme eine Fehlermeldung "Ungültige Zeichen in Pfad". Ich kann nicht verstehen warum? Hilfe bitte.Dateipfad im WebClient

Der Wert der Dateien im unten ist „306963020170816111848_Generic_P.pdf“ und die Datei existiert auf jeden Fall in dem richtigen Pfad

WebClient client = new WebClient(); 
client.DownloadString(@"Handlers/MyPrintPdf.ashx?PdfFile=" + Server.MapPath("~/Templates/MyFiles/" + files)); // error here 

Changed

HttpUtility.UrlEncode(@"Handlers/MyPrintPdf.ashx?PdfFile=" + Server.MapPath("~/Templates/MyFiles/" + files)); 
+0

Was ist der Wert von Dateien Zeichenfolge? –

+0

seine 306963020170816111848_Generic_P.pdf – user2837961

Antwort

1

Sie die Uri Überlastung verwenden sollten, verwenden Ihre DownloadString Methode. Diese Parameter müssen URL-codiert sein.

EDIT:
HttpUtility.UrlEncode(url) sollte auch funktionieren.

+0

Könnten Sie bitte mit zwei Zeilen Code/Beispiel erklären? – user2837961

+0

Wenn Sie eine Zeichenfolge wie "http: // test? Hallo Welt!" In Ihre Browser-URL-Leiste setzen, wird die Zeichenfolge automatisch in "http: // test /? Hallo% 20world% 20!" Umgewandelt (getestet in Chrome) . Dies ist ein gültiges Format zum Übergeben von Parametern über die URL. Sie benötigen dieses Verhalten auch auf Ihrem Webclient (der Ihre URL nicht automatisch codiert), so dass Sie 'HttpUtility.UrlEncode (yourUrl)' verwenden können, um Sonderzeichen zu vermeiden. – senz

+0

Danke das funktioniert. Aber warum nicht in den ProcessRequest-Code meines Handlers gehen? – user2837961