[ASP.NET] Preklad fyzicke adresy na virtualni (url)
Za boha nemuzu nikde najit, jak elegantne prelozit znamou fyzickou adresu souboru napr:
Kód:
C:\Inetpub\wwwroot\mujweb\images\image.jpg
do teto formy:
Kód:
http://localhost/mujweb/images/image.jpg
Mate nejake doporuceni jak postupovat?
Diky moc
Re: [ASP.NET] Preklad fyzicke adresy na virtualni (url)
Neporadim ti konkretne, ale kazdopadne tohle zavisi na nastaveni web serveru, zalezi na tom, kam ma nastaven root a i na dalsich vecech. V zakladu bys minimalne musel znat kam je nastavenej ten root, tu cast z toho oriznes a nahradis ji tim http://...
Re: [ASP.NET] Preklad fyzicke adresy na virtualni (url)
No skoda, skladanim a menenim znaku ve stringu me to taky napadlo. Doufal jsem ze existuje nejaka elegantnejsi konstrukce :(
Re: [ASP.NET] Preklad fyzicke adresy na virtualni (url)
nevim, jestli by to pomohlo, ale na prevod relativni na absolutni se da pouzit:
FileStream s = new FileStream(Server.MapPath("/neco.dat)FileMode.OpenOrCreate);
Re: [ASP.NET] Preklad fyzicke adresy na virtualni (url)
Jo o tomhle vim, to je jednoduchy prevod na fyzickou adresu. Na druhou stranu je to ovsem docela problem jak tak asi koukam.
Pr. Chci nahrat na server obrazek. Nahraju ho jednoduse pomoci FileUpload controlu, ktery pracuje s fyzickymi adresami. Potom chci vratit uzivateli vysledek jako relativni (virtualni) adresu, kde se obrazek nachazi. A to je problem :)
Re: [ASP.NET] Preklad fyzicke adresy na virtualni (url)
tak presne tohle jsem resil tenhle tyden na jedny semestralce... :D
1) jestli uploadujes, vis kam to uploadujes.
2) znas svou URL adresu pro pristup k tvym strankam
cili...pouzij relativni cestu
- nevyhoda: zmena adresare skriptu znamena zmenu pozice relativni cesty vuci adresari images a to by mohl byt problem...
//definice globalnich/lokalnich promennych
$abs_cesta='http://localhost/mujweb/';
prikaz($temp_soubor,$img_cesta='images/$jmeno_souboru');
vypis_uzivateli ($abs_cesta$img_cesta");
Re: [ASP.NET] Preklad fyzicke adresy na virtualni (url)
Nakonec jsem to udelal timhle zpusobem (protoze je to v repeateru, tak je to reseno inline kodem):
Kód:
<a href="<%# Request.ApplicationPath %>/images/
<%# ((System.IO.FileInfo)Container.DataItem).Name %>">
Ten ApplicationPath se postara o pripadne vlozeni nazvu aplikace, pokud neni umistena primo ve wwwroot, pokud je v rootu, tak se nevklada nic (resp. tohle ""). Vystupem je tedy:
Kód:
<a href="aplikace/images/obrazek.jpg">obrazek</a>
(nebo)
<a href="images/obrazek.jpg">obrazek</a>
Coz uz se v pohode zobrazuje u klienta jako cela virtualni adresa :)
Re: [ASP.NET] Preklad fyzicke adresy na virtualni (url)
Presto kdyz potrebuju text a ne odkaz, tak mi to nic neprelozi. V tomto pripade jsem to teda napsal takhle:
Kód:
string url = Request.Url.AbsoluteUri.Replace(Request.Url.PathAndQuery,
Request.ApplicationPath + "/Default.aspx")