Forum > ASP.NET 3.x > Generella frågor
Jag är helt ny på webutveckling och har efter mycket slit kommit så långt som till att ladda upp min sida på webhotellet. Allt fungerar så när som på mina ImageButton. Jag vill sätta bilden dynamiskt med:
ImageButton1.ImageUrl = path + filnamn;
path får jag genom att använda
Server.MapPath("mittDirectory");
Då jag kör lokalt på min egen dator fungerar det men då jag kör på mitt webbhotell så fungerar det inte. Jag får inget felmeddelande utan det enda som händer är att mina bilder inte "laddas" till mina ImageButtons. Jag använder samma metod dvs Server.MapPath för att hitta xml filer och de kan jag läsa in om parsa. Kan det vara så att det finns någon mysko inställning i mitt webbhotell som tillåter att jag läser in xml filer men inte tillåter att jag sätter en bild dynamiskt eller har jag glömt något i koden?
| Skriv utDet skulle underlätta ifall du visade lite kod
Jag är osäker på vad jag bör visa för kod. Enda raden som känns relevant är:
ImageButton1.ImageUrl = Server.MapPath("bilder") + "filnamn.jpg";
Satsen ligger inte i någon loop eller if sats. Bildtexten som jag sätter i samma metod visas. På ett annat ställe i använder jag
foreach (string s in Directory.Getfiles(Server.MapPath("mittDirectory")"*.xml")){
foo.load(x);
....
och då funkar det att läsa mina .xml filer till foo.
Nu säger du att Server.MapPath("bilder") + "filnamn.jpg"; blir bilderfilnamn.jpg
Testa med detta
ImageButton1.ImageUrl = Server.MapPath("bilder") + "/" + "filnamn.jpg";
Oops. sorry, jag håller på och ändrar och testar olika varianter så jag råkade klippa in fel i min andra post.
ImageButton1.ImageUrl = Server.MapPath("bilder") + "\\" + "filnamn.jpg";
skulle det stått men det funkar ändå inte. Server.MapPath returnerar pathname med \ och inte / jag har aldrig riktigt fattat skillnaden där. Jag har testat att lägga allt i en string och skriva ut stringen och den ser ok ut så det känns som om det borde vara något annat.
Server.Mappath retunera c:\...\... exempelvis, vilket inte är vad du är ute efter, du vill nog använda dig av ResolveUrl:
http://msdn.microsoft.com/en-us/lib...resolveurl.aspx
Tack. Det funkar med resolve url. Jag fattar inte varför men jag kanske bara borde vara lycklig och njuta av ögonblicket.
Klart man skall vara glad, och om det är ett problem man äntligen löser är det ju ännu bättre när det är "klart"
\ vs /
\ är för windows: c:\test\test och för webb så använder man / aspkoll.se/
För att förklara varför det fungera på din lokala men inte på servern är förmodligen att på den lokala så ligger filerna rätt: c:\minsida\images\1.png
medans på webbhotell kan den ligga på en helt annan disk som du inte har: z:\zpeedi_se\images\1.png på så sätt blir det "fel".
Glöm inte sätt tråden som löst ;)