Einstellung Absoluter ImageUrl
Habe ich ein Image-Steuerelement auf meine .aspx-Seite, und ich möchte, um die ImageUrl etwas wie dies:
<asp:Image ID="imgLogo" ImageUrl="C:\ExternalImages\logo.jpg" runat="server" />
Aber das funktioniert nicht. Ich lese über die ImageUrl-Eigenschaft auf der MSDN-Website und es sagt, dass die url kann entweder eine absolute oder relative Pfad. Aber wie kann ich den vollständigen Pfad, wie oben gezeigt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Durch absolute url, die Sie bedeuten, dass die gesamte IIS-Pfad der URL (Nicht auf dem disk directory-Pfad). (d.h. http://yourVirtualDirectory/ExternalImages/logo.jpg).
Erstellen eines virtuellen Verzeichnis auf dem IIS-hosting-Maschine, die Punkte zu C:\ExternalImages. Verwenden Sie das virtuelle Verzeichnis Pfad in der control.
"Absolute" bedeutet das absolute aus der client-Perspektive, wie in
http://foo.com/images/logo.jpg
oder/images/logo.jpg
. Der Unterschied ist, Sie entweder den vollständig qualifizierten Domänennamen oder die führenden "/", was sagt der browser zum laden der Pfad von der Wurzel, oder auf domain-Ebene."Relative" bedeutet, dass kein führender Schrägstrich, und sagt dem browser, navigieren Sie zu dem Pfad mit dem aktuellen Ordner als Ausgangspunkt. So
../images/logo.jpg
ist ein relativer Pfad bedeutet "relativ zum aktuellen Ordner zum vorherigen Ordner, dann nach unten in den Bilder-Ordner, dann logo.jpg"Das Beispiel, das Sie gezeigt haben, weist der end-Nutzer den browser zu laden, der Weg von Ihrer eigenen Maschine, die in den meisten Fällen nicht funktionieren, da Sie nicht haben, die den Pfad oder die Datei 🙂
ImageUrl ist der Rechner nicht den Pfad sondern eine Url-Pfad: http://www.something.com/logo.jpg" oder "/logo.jpg"
Könntest du auch das Bild von der Festplatte, aber Sie müssen hinzufügen:
file://
aber nicht ausgeführt, in anderer Maschine als die waren, die Sie entwickeln-Absolute und relative URL reffers, um das Verhältnis auf dem server.
ex: http://mydomain.se/mysite/images/image.gif ist ein absoluter Pfad
/images/image.gif ist ein relativer Pfad.
Relativ in der Weise, dass Sie die Seite befindet sich in der Mysite-Verzeichnis auf dem server.
Den Grund für die Verwendung von relativen Pfaden ist, dass es macht es leichter zu bewegen die Seite um,
Der Grund für die Verwendung eines absoluten Pfades ist, dass Sie bewegen kann "myimage.html" in ein Unterverzeichnis, ohne die url.
Absolut bedeutet Absolute aus dem Projekt, relativ bedeutet relativ zur aktuellen position, z.B.
../../Images/logo.jpg
. Sie sind am besten zu verwenden ist absolut für die größte Flexibilität, z.B.~Images\logo.jpg
. Die tilde~
wird automatisch ersetzt durch den relativen Pfad zur Laufzeit.Muss sich der Ordner in Ihrem virtuellen Ordner, so können Sie tun:
Weitere option ist, um eine Seite zu erstellen, die Lesen können, die Datei, so könnte man schreiben:
Und Ihre MyImage.aspx.cs Aussehen wird:
Aber beachten Sie, dass code führen kann-injection-Probleme, wie können Sie ein "..\" in
name
parameter und erhalten Sie Zugriff auf Dateien außerhalb dieser Ordner.So platzieren, dass die Ordner innerhalb des virtuellen Verzeichnisses.
BEARBEITEN: deutlich Zu machen,: Mein Vorschlag ist, um Ihre
ExternalFolder
innerhalb des virtuellen Verzeichnisses. Das ist, machen Sie das Leben leichter.Manchmal nicht möglich einen Ordner zu verschieben. So habe ich auch aktualisiert-code oben auf befassen sich mit nicht kanonischen Dateinamen.