Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobieranie obrazka jpg
Forum PHP.pl > Forum > Przedszkole
albertusek
Witajcie

Chce żeby po pobraniu przez przeglądarkę pliku jpg ten plik wyświetlił się teraz pobiera mi plik jpg zamiast tego wyświetla się komunikat: "Prawdopodobnie ten format pliku nie jest obsługiwany".
Co może być przyczyną? Wszędzie szukam rozwiązania ale nigdzie nie ma.
Oto te pliki php:
Plik zamowienie.php:
<?php
$id=$_GET['id'];
if ($link = mysqli_connect('localhost', 'root', '', 'baza')) {
}

else {
echo 'Błąd połączenia!';
}
//zapytanie sql do bazy określające jakie dane mają zostać pobrane


$wynik = mysqli_query($link, "SELECT * From fotki WHERE id='".$id."'");
while ($co = mysqli_fetch_array($wynik)) {
$id = $co['id'];
$rodzaj = $co['cena'];;
$zdjecie = $co['foto1'];
echo "<img src=http://localhost/bank/upload/$zdjecie width=500 height=200></img>";
echo "<a href=Zakup.php?name=$zdjecie>Zamawiam</a>";
echo "<h2>Zamówiłeś $zdjecie do zapłaty:$rodzaj";
}
?>
plik Zakup.php:
<?php
$name = $_GET['name'];
header("Content-type: application/jpg");
header("Content-Disposition: attachment; filename=$name");
readfile('$sylwer');

?>

Tak to wygląda będę wdzięczny za pomoc
pozdrawiam
nospor
nie:readfile('$sylwer');
a: readfile($sylwer);

edit: no i kolejna sprawa to fakt, ze zmienna $sylwer nigdzie nie jest okreslona... No skad php ma to wziasc? z powietrza? $sylwer ma wskazywac pelna sciezke do pliku,ktory chcesz zwrocic
albertusek
Nie rozumiem jak pełna ścieżka nazwy do pliku? Toż przecież robię:

Plik zamowienie.php:

$id=$_GET['id'];
if ($link = mysqli_connect('localhost', 'root', '', 'photo')) {
}

else {
echo 'Błąd połączenia!';
}
//zapytanie sql do bazy określające jakie dane mają zostać pobrane


$wynik = mysqli_query($link, "SELECT * From fotki WHERE id='".$id."'");
while ($co = mysqli_fetch_array($wynik)) {
$id = $co['id'];
$rodzaj = $co['cena'];;
$zdjecie = $co['foto1'];
echo "<img src=http://localhost/bank/upload/$zdjecie width=500 height=200></img>";
echo "<a href=Zakup.php?name=$zdjecie>Zamawiam</a>";
echo "<h2>Zamówiłeś $zdjecie do zapłaty:$rodzaj";
}

plik Zakup.php:

<?php
$zdjecie =$_GET['name'];
header("Content-type: application/jpg");
header("Content-Disposition: attachment; filename=$zdjecie");
readfile($zdjecie);

?>

I dalej: "Prawdopodobnie ten format pliku nie jest obsługiwany.
nospor
$zdjecie =$_GET['name'];
To jest tylko nazwa pliku. readfile() wymaga pelnej sciezki do pliku, a nie tylko nazwy

bazujac na tym
echo "<img src=http://localhost/bank/upload/$zdjecie width=500 height=200></img>";

to zakladam ze to powinno wygladac tak:
readfile('./bank/upload/' . $zdjecie);

Ale to jest tylko moje zgadywanie. To ty masz wiedziesz gdzie jest twoj plik a nie ja
albertusek
Nie wiem co jest złego pliki z obrazkami trzymam w folderze upload. Jak mam niby określić ścieżkę pliku? Naprawdę robię co mogę.
gino
Content type: application, fakt, jest on do plików binarnych, ale tych które nie mieszczą sie jawnie w żadnym z pozostałych typów, albo dla danych binarnych, które potrzebują konkretnej aplikacji.
Masz jpg to użyj:
  1. "Content-type: image/jpeg";


Po drugie semantyka, równie ważna:
  1. echo '<"img src=http://localhost/bank/upload/$zdjecie" width="500" height="200"></img>';

Jeśli html chce mieć cudzysłów w pewnych miejscach to mu to zapewnij.

Nie rób co możesz, tylko czytaj wyraźnie co pisze @nospor: $_GET['name'] to nie to samo co pełna ścieżka do pliku.

Uploudowane pliki nie lubią polskich literek, jeśli masz takowe w nazwie pliku a wrzucisz to na docelowy serwer możesz się zdziwić.
trueblue
Cytat(gino @ 4.02.2025, 12:51:05 ) *
Po drugie semantyka, równie ważna:
  1. echo '<"img src=http://localhost/bank/upload/$zdjecie" width="500" height="200"></img>';

Ważna.
  1. echo '<img src="http://localhost/bank/upload/'.$zdjecie.'" width="500" height="200"/>';

albertusek
Może za dużo chcę ale ktoś by mi zademonstrował prosty skrypt php że klika się zdjęcie i jest pobierane przez przeglądarkę i wyświetla się. Będę wdzięczny za wyrozumiałość i pomoc.
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.