Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Brak możliwości podglądu obrazka po zapisaniu go na dysku
Forum PHP.pl > Forum > Przedszkole
Trepek
Witam. Zamieszczam kody dwóch plików:

Plik: index.html
  1. <form action="img.php" method="post">
  2. <input type="text" name="id" maxlength="4" />
  3. <input type="submit" value="sprawdz"> <input value="R" type="reset">
  4. </form>


Plik: img.php
  1. <?php
  2. $id = $_POST['id'];
  3. header('Content-type: image/png;');
  4. echo file_get_contents("http://localhost/proj/".$id."/k.png");
  5. ?>


Problem: Formularz działa poprawnie, gdy wpiszesz dowolną cyfrę od 0 do 9999 to otworzy się folder o tym numerze i wyświetli się obrazek "k.png" w pliku: img.php
Lecz gdy chcę ręcznie zapisać sobie ten obrazek, poprzez kliknięcie na niego prawym przyciskiem myszy, to gdy potem zmieniam rozszerzenie pliku na *.png i próbuję go otworzyć, to wyświetla sie komunikat: "Podgląd niedostępny.". Jak zmienię rozszerzenie na *.txt, to wyświetla mi się taki komunikat po otworzeniu go w notatniku:
  1. <br />
  2. <b>Notice</b>: Undefined index: id in <b>F:\wamp\www\proj\img.php</b> on line <b>2</b><br />
  3. <br />
  4. <b>Warning</b>: file_get_contents(http://localhost/proj//k.png) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
  5. in <b>F:\wamp\www\proj\img.php</b> on line <b>4</b><br />


Spróbowałem jeszcze zrobić w pliku img.php tak, że usunąłem zmienną $id i dopisałem id, gdzie ten obrazek się znajduje, czyli kod wygląda tak:
  1. <?php
  2. header('Content-type: image/png;');
  3. echo file_get_contents("http://localhost/proj/10/k.png");
  4. ?>

Wtedy plik index.html jest bezużyteczny, bo już nie muszę podać id do katalogu, gdzie się znajduje obrazek wypełniając formularz, tylko jedynie mogę kliknąć na przycisk sprawdz i przechodzi mi do pliku img.php, i pojawia mi się obrazek. A gdy go zapiszę sobie na dysk, tak jak to wcześniej napisałem i zmienię mu rozszerzenie na *.png, to po otwarciu wyświetla się obrazek i ten sposób działa. Lecz ja chcę wg sposobu z wypełnianiem formularza.

Czy ktoś jest w stanie mi pomóc, bym mógł normalnie podglądać obrazek po jego zapisie?
Mephistofeles
Przy zapisywaniu przeglądarka wysyła kolejne żądanie, a tam już nie ma danych z POSTa, dlatego dostajesz błąd, bo nie masz zdefiniowanego $id.

Nie robi się czegoś takiego, bo po co przesyłać plik przez PHP? Lepiej adres przekazać, przecież i tak nic z tym obrazkiem nie robisz.
Trepek
Dzięki Wielkie za odpowiedź. Nie satysfakcjonuje mnie ten sposób, ale cóż będę musiał tak zrobić jak mi napisałeś. Chyba, że ktoś będzie w stanie mi pomóc.
Mephistofeles
Przekaż id GETem, powinno działać.
Trepek
Dzięki za pomoc. Działa i jest w porządku.
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.