mam katalog pełen zdjęć. Chciałbym zrobić skrypt, który “ukryje” prawdziwe ścieżki przed użytkownikiem i umożliwi ściągnięcie zdjęcia na dysk użytkownika.
Czyli reasumując:
mamy link “download” ( download)
klikamy go
rozpoczyna się ściąganie zdjęcia na dysk.
Udało mi się zmontować coś takiego:
<?php
$filename = 'error.png';//wybieramy plik do ściągnięcia
header('Content-Type:application/force-download');//ustawiamy mu uniwersalny typ mime (można bawić się w nadawanie mu application/msword, image/gif, itd...
header('Content-Disposition: attachment; filename='.basename($filename).';');//tutaj podajemy nazwę pliku - domyślnie ustawiłem, aby plik nazywał się tak jak oryginał
header('Content-Length:'.@filesize($filename));//dodajemy wielkość pliku
@readfile($filename)or die('File not found.');//czytamy plik
?>
Pliki się automatycznie ściągają, jednak jest problem z tym iż pobrane pliki graficzne (w tym przypadku png) nie otwierają się po pobraniu (wyskakuje błąd)…
Moja grafika[/code]
To ktoś klikając na tekst "Moja grafika" pobierze zdjęcie, które podlinkowałeś poprzez href. I to zdjęcie będzie się nazywało foto.png/jpg itp.
Jeżeli natomiast wpiszesz to :
To ten ktoś pobierze obrazek z jego oryginalną nazwą. Rozumiesz ? Jeżeli do atrybutu ‘‘download’’ dopiszesz jakąś wartość, to tak zostanie nazwany plik.
NP. wgrywasz na serwer zdjęcie o nazwie “ryba.png”, a w atrybucie download dopiszesz np rower to po kliknięciu na link pobierzesz rower.png, jeżeli natomiast do html dopiszesz samo download to pobierzesz ryba.png Myślę, że rozjaśniłem co nie co Pzdr
IE 8 pewnie nie będzie tego wspierał, może IE 9 już tak, raczej IE 10 wspiera.
Tylko szczerze mówiąc po co Ci ten znacznik? On za wiele nie ułatwia, a jego funkcjonalność można obejść właściwym linkiem i skryptem w PHP (na przykład).
właśnie… chciałem w php to zrobić, ale tutaj poradzono mi ten znacznik…
Mam po prostu galerię zdjęć i pod spodem chce zrobić link “pobierz fotkę” - po kliknięciu na to, php ma rozpocząć ściąganie pliku graficznego na dysk użytkownika… i tyle
kombinowałem z tym kodem php powyżej… ściąga mi zdjęcia na dysk, ale coś niepoprawnie bo nie idzie ich później otworzyć…
Ale masz skądś ten plik źródłowy (error.png), który przez link pobierasz? Ten “źródłowy” plik możesz normalnie otworzyć, a ten pobrany przez link już nie? A co jak go najpierw zapiszesz, z potem zechcesz otworzyć? A jak to jest z innym plikiem?