2011-01-12 12 views
6

Ich habe eine Website auf GoDaddy. Alle Berechtigungen sind korrekt eingestellt und das Bild existiert. Wenn die Seite jedoch das Bild für das ausgewählte Objekt lädt, wird es nicht angezeigt. Hier ist mein CodeBild-URL ist korrekt, aber das Bild zeigt nicht

 imagepath = "~/spaimages/" + currentSpaModel.Name.ToString() + ".png"; 
     if (File.Exists(Server.MapPath(imagepath))) 
     { this.spaimage.ImageUrl = Server.MapPath(imagepath); } 

spaimage ist eine ASP-Steuerung und thr URL, dass das Bild gesetzt wird, ist D: \ Hosting \ xxxxxxx \ calspas \ spaimages \ modelname.png

Was mache ich falsch.

Antwort

14

Der Dateipfad D:\hosting\xxxxxxx\calspas\spaimages\modelname.png ist der Ordner, in dem sich das Image auf dem Webserver befindet. Sie senden das als das -Tag src-Attribut, das dem Browser mitteilt, "Gehen Sie zu dem Abbild um D:\hosting\xxxxxxx\calspas\spaimages\modelname.png". Der Browser kann nicht auf das D-Laufwerk des Webservers zugreifen, daher sucht er auf seinem eigenen Laufwerk nach diesem Ordner und Bild.

Was Sie tun bedeuten, ist die <img>-Tag des src Attribut haben einen Pfad zu einem Ordner sein auf der Website. Sie sind gerade dabei - lassen Sie einfach den Server.MapPath Teil fallen, wenn Sie den Bildpfad der Eigenschaft ImageUrl zuweisen. Das heißt, statt:

this.spaimage.ImageUrl = Server.MapPath(imagepath); 

Do:

this.spaimage.ImageUrl = imagepath; 

sehen, ob das funktioniert.

Danke

+0

Scott, du bist großartig, danke das hat perfekt funktioniert – mattgcon

2

Wenn ein Bild "nicht angezeigt wird" (ich nehme an, dass ein Rot-x-Äquivalent angezeigt wird, um "gebrochenes Bild" anzuzeigen), klicke ich mit der rechten Maustaste auf das beschädigte Bild, kopiere die URL und öffne die URL ein separates Browserfenster.

Auf diese Weise, wenn das Bild von einem Skript generiert wird, sehe ich einen Fehlertext, der das Skript gezeigt haben könnte. Wenn nicht, würde das reale Bild angezeigt werden.

Darüber hinaus fügen Sie ein else Block zum

if (File.Exists(Server.MapPath(imagepath))) 

wie

else 
{ 
    Response.Write(string.Format(
     "File does not exist at '{0}'.", 
     Server.MapPath(imagepath))); 
} 

Für Debugging-Zwecke.

+0

Eigentlich zeigt das asp-Bild-Steuerelement eine winzige Box ohne ein rotes x. und wenn ich mit der rechten Maustaste klicke, um die Bildeigenschaften anzuzeigen, ist nichts da, aber wenn ich zur Quelle gehe, ist die URL vorhanden. – mattgcon

Verwandte Themen