Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]jak umieścić na stronie zdjęcie z poza katalogu strony
Forum PHP.pl > Forum > Przedszkole
jolam
Witam serdecznie

Jak umieścić na stronie zdjęcie, które jest w katalogu innymi niż katalog strony ustawiony na serwerze? Dokładniej katalog ze zdjęciami jest wyżej o jeden poziom niż katalog ustawiony jako macierzysty dla strony.

Używając PHP wpisuję na początku ścieżki ".." i mam dostęp do tych plików. Ale jak je umieścić na stronie? Tak jak umieszcza się znacznikiem <img>?

Wiem, że jest funkcja header, ale ona wysyła mi zdjęcie do przeglądarki a mi chodzi o jego umieszczenie na stronie, tak żeby całość została wysłąna do przeglądarki.

Bardzo proszę o pomoc

pozdrawiam Jola
jmail
utwórz sobie plik daj_zdjecie.php na przykład

a w nim wsadź (przykład dla jpg'a - z innymi typami będzie zbliżone)

  1.  
  2. if(isset($_GET['nazwa_obrazka'])){
  3. $nazwa_obrazka = $_GET['nazwa_obrazka'];
  4. }
  5.  
  6. $obrazek = imagecreatefromjpeg('sciezka/do/pliku/'.$nazwa_obrazka.'.jpg');
  7. header("Content_type: image/jpg");
  8. imagejpeg($obrazek);
  9. imagedestroy($obrazek);
  10.  



i teraz umieszczasz na stronie znacznik img w taki sposób

  1.  
  2. <img src="daj_zdjecie.php?nazwa_obrazka=nazwa_obrazka">
  3.  
Fifi209
Kolega po połowie mówi dobrze, ale nie używaj GD do tego bo tylko obciążysz serwer dodatkowo.

Zwykły header + readfile

@up
Nie Content_type a Content-Type
erix
Ale kombinujecie...

Cytat
Wiem, że jest funkcja header, ale ona wysyła mi zdjęcie do przeglądarki a mi chodzi o jego umieszczenie na stronie, tak żeby całość została wysłąna do przeglądarki.

Da się to zrobić bez PHP, nie ma sensu strzelać do muchy z armaty.

  1. mod_alias - w Apache to byłoby IMHO najwydajniejsze wyjście (zobacz w pliku konfiguracyjnym sposób zmapowania URL /manual/ albo /icons/)
  2. poprzez mod_rewrite:
    [APACHE] pobierz, plaintext
    1. RewriteEngine On
    2. RewriteRule zdjecia/(.+)$ ../superTajnyKatalogNaFocie/$1 [L,NC]
    [APACHE] pobierz, plaintext
jolam
jmail napisał działające rozwiązanie.

fifi209 zgadzam się, że to bez sensu tak obciążać serwer. Ale używając header i readfile, udaje mi się jedynie wysłać plik do zapisania albo wyświetlić krzaczki.
Teraz nie mogę zajrzeć do moich pliczków ale mam w show.php:

header('Content-type: image/jpg'); /* dodanie innych np content-lenght też nic nie daje */
header('Content-Disposition: inline; filename="image.jpg"');
readfile("$path");

w plikach html mam:
<img src="show.php">


Bardzo mi zależy, żeby to zrobić w php w jak najprostszy sposób bez imagejpeg

erix chcę, żeby to działało bez mod_rewrite. Tylko za pomocą php.


Pomóżcie mi, proszę. Szukałam w internecie i albo jest rozwiązanie z imagejpeg albo nic.


pozdrawiam serdecznie Jola

erix
Cytat
erix chcę, żeby to działało bez mod_rewrite. Tylko za pomocą php.

Ale PO CO? To jest bez sensu, aby do czegoś, co bez problemu wykona serwer, zaprzęgać niepotrzebnie serwer. Żeby przenieść meble z jednego pokoju do drugiego też dzwonisz po ekipę pomagającą w przeprowadzkach?
thek
Spróbuj jeszcze jednego rozwiązania... Ja go używam do wyświetlania ikon, których nazwy są przechowywane w bazie i są w normalnej strukturze katalogów, ale łatwo go można wstawić inline.
  1. header("Content-type: image/png");
  2. $zapytanie = mysql_query( "SELECT localization FROM icons WHERE icon_id=".$jakis_id );
  3. $wynik = mysql_fetch_assoc($zapytanie);
  4. echo file_get_contents("../images/icons/".$wynik['localization']);

Bez używania GD. Na pewno w normalnej strukturze działa, a czy dla wyskoczenia poza katalog główny to musisz sama sprawdzić bo tak tego nie testowałem smile.gif
jolam
erix dla ciebie wszystko jest proste i zawsze wiesz wszystko najlepiej ...


Jeśli ktoś wie jak to zrobić z tym header, to bardzo proszę o pomoc. Zależy mi na tym bardzo rolleyes.gif
A jak nie to ślicznie dziękuję.


pozdrawiam Jola
erix
Cytat
erix dla ciebie wszystko jest proste i zawsze wiesz wszystko najlepiej ...

Przecież dostałaś na tacy ode mnie, co trzeba zrobić. Rusz swoje cztery litery i do roboty, a nie zrzędzisz i udajesz wielce nieporadną czekając aż ktoś ZA CIEBIE zrobi.
thek
Cytat(jolam @ 21.09.2009, 13:17:19 ) *
erix dla ciebie wszystko jest proste i zawsze wiesz wszystko najlepiej ...
Gdyby wszystko wiedział, to by nie zadawał pytań co jakiś czas winksmiley.jpg Podał Ci proste rozwiązanie problemu, które nie angażuje do pracy interpretera php ale serwer http, co teoretycznie powinno być wydajniejsze. W końcu nie określiłaś wcześniej, że htaccess nie może być użyty. Informatyka to wredna nauka, bo jeden problem mozna rozwiązać na wiele sposobów i dlatego trzeba szczegółowo określać problem oraz potrzeby. Przykład miałem przed chwilą. Handlowiec chciał by po edycji pola w tabeli wracało do rekordu edytowanego. Problem w tym, ze całość tabeli jest generowana przez jQuery ( jquery.quicksearch.js ), więc musiałbym najpewniej skorzystać z ajax by oczekiwany efekt osiągnąć. A poradzilem sobie o niebo prościej. Założyłem, że nie muszę przechwytywać jakie ograniczenie wpisano w polu szukania (spytałem handlowca czy mu przeszkadza że nie dostanie tego samego co przy zastosowaniu ograniczenia) i zrobiłem banalne przekierowanie headerem na kotwicę po update danych. Po co sie więc męczyć, kombinować, skoro czasem można coś rozwiązać bez uciekania do nie wiadomo jak skomplikowanych metod i sięgania po bardziej wymyślne technologie tylko po to by jakąś swoją ambicje zaspokoić? A htaccess jest banalny w porównaniu do kombinowania z php.
jolam
Nie mogę użyć konfiguracji apache. I dlatego muszę to zrobić w php.

Jeśli ktoś wie jak to zrobić albo wie gdzie to jest pokazane to bardzo, ale to bardzo proszę o pomoc. Ja nie wiem, gdybym wiedziała to nie prosiłabym erixa o pomoc - przecież on lubi się tylko wymądrzać a nie pomagać innym.

Jeszcze raz bardzo proszę, powiedzcie gdzie mam błąd i jak mam go naprawić aby wyświetlić te zdjęcia na stronie.


pozdrawiam Jola
nowy_pehapowiec
Też używałemm imagejpeg() potem przeszedłem na mod_rewrite jak erix dobrze radził. Ale ciekawe czemu kod tej Jolki nie działa. Nawet sprawdziłem z ciekawości u siebie. Czysto teoretycznie podbijam pytanie jolam, kto da odpowiedź?


@jolam
troszkę ci hormony szaleją kobieto

pozdro
erix
Cytat
Jeśli ktoś wie jak to zrobić albo wie gdzie to jest pokazane to bardzo, ale to bardzo proszę o pomoc. Ja nie wiem, gdybym wiedziała to nie prosiłabym erixa o pomoc - przecież on lubi się tylko wymądrzać a nie pomagać innym.

Wymądrzać? Wypraszam sobie i jeśli masz jakieś obiekcje pod moim adresem - zapraszam na PW, netykieta obowiązuje, chyba że naprawdę chcesz dostać +10%. Czekasz tylko na gotowce, a gdy ich nie dostaniesz jeszcze ze wskazaniem paluchem, co gdzie wlepić, to zaczynasz się foszyć, ale moja (i nie tylko moja) cierpliwość w końcu się wyczerpie, dostaniesz moderację na posty i tyle z tego będzie. Uszanuj to, że ktoś poświęca czas na tłumaczenie Tobie jak sołtys krowie na miedzy, 90% użytkowników zwykle po paru postach łapie, ale Ty wolisz na ładne oczy wybłagać gotowca, niż parę razy przeczytać ze zrozumieniem, czy to dokumentację, czy to czyjeś posty. Tyle ode mnie, PUBLICZNE upomnienie, następnym razem będzie +10%.

Kończymy offtopa, nie karmimy już. ;]

Cytat
Nie mogę użyć konfiguracji apache. I dlatego muszę to zrobić w php.

Podaj RACJONALNY powód, który wyklucza u Ciebie użycie Rewrite.
jolam
erix ja ci już to kilka razy tłumaczyłam, że jak nie chcesz pomagać to nie pomagaj ale daruj sobie złośliwości. Nie wiem jak to zrobić, szukałam rozwiązania bardzo długo i szukam nadal. Po kilku twoich bezwartościowych postach nie przybliżyłam się do rozwiązania. Uwierz, że wdawanie się zarozumiałym małolatem w dyskusje nie jest moim ulubionym sposobem na spędzanie czasu. Więc prosiłabym, żebyś dał sobie spokój z kolejnymi złośliwościami i nie przeszkadzał. Nie podniecaj się tak sobą i tym, że jesteś moderatorem. Dorośnij!

Może ktoś inny mi pomoże?


pozdrawiam Jola
erix
Nie będę sobie pozwalał na obrażanie, nie będę robił tego samego w stosunku do Ciebie, bo ktoś nie zauważy różnicy. Koniec tematu, dostałaś wystarczająco wiele wskazówek, moja cierpliwość do Twojego lenistwa się wyczerpała.

+10% i moderacja na tydzień. Nie pasuje? Zapraszam do kontaktu z szefem moderatorów (~Cysiaczek), który ew. ją zdejmie.
Cysiaczek
Otwieram, bo problem uważam za nierozwiązany.
itsme
- 10%, bez moderacji,

obie strony są proszone o spokojniejszą dyskusję.

- Jeżeli user jest proszony o nie pomaganie czasami warto wrzucić na looz i nie pomagać ... iść i czynić swoje w innych tematach (dotyczy to również moderatorów)
- Jeżeli autorka tematu oświadcza że musi to zrobić za pomocą PHP a nie innych środków należy to przyjąć za pewnik i pomóc na tyle ile można a nie domagać się uzasadnień dlaczego nie można przez Apache (odp: admin nie pozwala i co podać numer do admina?)

- Jola patrząc na historię warningów widzę że masz cięty język i taką etykietę masz przyklejoną zatem każda ostrzejsza wypowiedź podlega specjalnej ocenie. Stąd też kara dla Ciebie za wypowiedzi w tym temacie. Wygórowana - sądzę że reprymenda na PW lub w temacie od osoby wyższej rangą niż moderator wystarczy. I taką reprymendę daję. Mama nadzieję że w przyszłości okażesz więcej cierpliwości dla swojego języka.

Pozdrawiam
Itsme
fander
pani jolu może jeszcze pani na serwerze kopiować dany obrazek do folderu do którego ma się dostęp z poziomu przeglądarki ^^, poza gd i header nic mi nie przychodzi do głowy
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.