Autor Zpráva
misa007
Profil *
Ráda bych se zeptala v čem bych mohla mít problém.

Po jakékoliv upravě obrázku, když jej uložím do adresáře kde je jsou uloženy i zdrojové kódy se mi obrázek v pořádku refrešuje. Pokud ale změním cestu na síťovou, obrázek se sice správně upraví a uloží, ale na webu se obrazek nezmění.

V následujícím kódu je jediný rozdíl a to v hodnotě proměnné obrazek_name.

        string obrazek_name = "~/g/kos/fotoalbum.jpg";
        string obrazek_name = "uploads/fotoalbum.jpg";
                      
        System.Drawing.Image ooo = System.Drawing.Image.FromFile(Server.MapPath(obrazek_name));
        System.Drawing.Bitmap newPic;
        Random generator = new Random();

        ooo.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipNone);
        newPic = new System.Drawing.Bitmap(ooo);
        ooo.Dispose();

        newPic.Save(Server.MapPath(obrazek_name), System.Drawing.Imaging.ImageFormat.Jpeg);
        newPic.Dispose();
        _iOrez.ImageUrl = obrazek_name + "?" + getRandomCode(generator, 15);
Chamurappi
Profil
Reaguji na misu007:
Vyhodnocování tildy jakožto kořenového adresáře aplikace v relativní adrese funguje jen na straně serveru. Pokud vygeneruješ přímo do HTML <img src="~/g/kos/fotoalbum.jpg">, tak to prohlížeč pochopitelně nepochopí, protože konvenci o tildě nezná a nemá ani tušení o parametrech aplikace na straně serveru.

V prohlížeči jde podobným způsobem používat kořenové adresy. Pokud máš aplikaci nastavenou tak, že běží v kořenovém adresáři domény, stačí se před vypsáním do HTML zbavit tildy.
misa007
Profil *
Do html se generuje přímo <img src="/g/kos/fotoalbum_754958.jpg?UHMD42naZHrXjcc" id="obsah__iOrez">, problem ale je, ze se obrazek nezaktualizuje, ale použije se z cache. V našem systému je adresář g namapovaný jako virtuální adresář kde je na serveru zadáno jméno a heslo pro mapování (stejné pod kterým běží i worker proces daného serveru). Pokud použijeme existující fyzickou cestu v rámci webu, vše funguje v pořádku, pokud použjeme tuto virtuální cestu, obrázek se na serveru uloží, ale na webu neaktualizuje.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0