Frage

Ich bin das Hochladen eine Datei, die ein einfaches Fileupload-Steuerelement mit dem Namen theFile (ASP.NET) verwenden. Ich versuche, den absoluten Pfad der Datei zu erhalten, aber thefile.PostedFile.FileName und thefile.FileName ist exakt die gleiche, nur der Dateiname, kein Pfad! Ich kann nicht Server.MapPath verwenden, weil ich auf einem anderen Server diese Datei gespeichert wird (über eine Webservice über Byte-Array zu übertragen).

Es bricht in dieser Zeile:

Dim fStream As New FileStream(thefile.FileName, FileMode.Open, FileAccess.Read)

, weil es die Dateinamen nimmt und Abbilden es auf den relativen Pfad meines VS! Ich brauche den absoluten Pfad ...

War es hilfreich?

Lösung

Eine Datei über HTTP hochgeladen wird nie den vollständigen Pfad auf der Fernbedienung (Client) Maschine enthält - es Informationen über ihre Verzeichnisstruktur weggeben konnte und so ein Sicherheitsrisiko betrachtet wird. Plus, was für den Einsatz wäre es? Wenn jemand Sie eine Datei aus über das Internet hochgeladen haben, warum sollten Sie einen Filestream auf Ihrem lokalen (asp.net Server) Maschine auf den Weg zu öffnen versuchen, die auf ihrer Maschine existierte?

Hochgeladene Dateien kommen tatsächlich als ein Strom von Bytes als Teil des Antrags durch. Sie müssen die FileBytes Eigenschaft der Steuerung, die Datei zu erhalten, oder die SaveAs () -Methode aufrufen, es zu dem Server zu speichern. In Ihrem Fall könnten Sie wahrscheinlich nur die Bytes erhalten und sie an den Webservice rufen Sie brauchen, um abzuschicken.

Andere Tipps

  

(Übertragung über Byte-Array durch einen Webservice).

Da Sie gerade die Datei Byte-Array erforderlich ist, warum nicht das Byte-Array der Datei Zugriff durch theFile.FileBytes Eigenschaft?

Hier ist der Verweis auf die FileBytes Eigenschaft des Fileupload Web Control: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filebytes.aspx

Wenn Sie direkt den Stream-Objekt zugreifen möchten, können Sie die Eigenschaft filecontent nutzen. Hier ist der Verweis auf die Eigenschaft filecontent der Fileupload Web Control: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filecontent.aspx

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