Generuję zwykłe linki, takie jak: <a href="https://stackoverflow.com/path/to/image"><img src="/path/to/image" /></a>
w aplikacji internetowej.
Kiedy klikam link, wyświetla obraz na nowej stronie. Jeśli chcesz zapisać zdjęcie, kliknij je prawym przyciskiem myszy i wybierz „zapisz jako”
Nie chcę tego zachowania, chciałbym, aby po kliknięciu linku wyskakiwało okno pobierania, czy jest to możliwe tylko w przypadku html lub javascript? W jaki sposób?
Jeśli nie, to chyba musiałbym napisać skrypt download.php i wywołać go w href z nazwą pliku jako parametrem ...?
Odpowiedzi:
Nie jest jeszcze w pełni obsługiwana http://caniuse.com/#feat=download , ale możesz użyć z modernizr https://modernizr.com/download/?adownload-setclasses (w sekcji Wykrywania spoza rdzenia ), aby sprawdzić obsługę przeglądarka.
źródło
download
atrybut atrybutu działa tylko w przypadku adresów URL tego samego pochodzenia . MDN DocsNajłatwiejszym sposobem utworzenia linku do pobrania obrazu lub html jest ustawienie atrybutu pobierania , ale to rozwiązanie działa tylko w nowoczesnych przeglądarkach.
„myimage” to nazwa pliku do pobrania. Rozszerzenie zostanie dodane automatycznie Przykład tutaj
źródło
download.php:
źródło
<a href="download.php?file=../dbparams.inc>">Download</a>
na przykład. Więcej informacji tutaj: en.wikipedia.org/wiki/Directory_traversal_attackNie, nie jest. Będziesz potrzebował czegoś na serwerze, aby wysłać nagłówek Content-Disposition, aby ustawić plik jako załącznik zamiast być wbudowanym. Możesz to jednak zrobić ze zwykłą konfiguracją Apache.
Znalazłem przykład robienia tego za pomocą mod_rewrite , chociaż wiem, że jest prostszy sposób.
źródło
Jeśli korzystasz z HTML5, możesz dodać atrybut „pobierz” do swoich linków.
http://www.w3schools.com/tags/att_a_download.asp
źródło
Spróbuj tego...
źródło
Atrybut pobierania HTML, aby określić, że cel zostanie pobrany, gdy użytkownik kliknie hiperłącze.
Ten atrybut jest używany tylko wtedy, gdy ustawiono atrybut href.
Wartością atrybutu będzie nazwa pobranego pliku. Nie ma ograniczeń co do dozwolonych wartości, a przeglądarka automatycznie wykryje prawidłowe rozszerzenie pliku i doda je do pliku (.img, .pdf, .txt, .html itp.).
Przykładowy kod:
HTML5:
Wyjście :
Pobierz obraz >>
Pobieranie HTML5 lub Chrome
Pobierz obraz >>
źródło
Nie możesz tego zrobić za pomocą czystego html / javascript. Dzieje się tak, ponieważ masz oddzielne połączenie z serwerem WWW w celu pobrania oddzielnego pliku (obrazu), a normalny serwer WWW będzie obsługiwał plik z ustawionymi nagłówkami treści, tak aby przeglądarka odczytująca typ zawartości zdecydowała, że typ ten może być obsługiwany wewnętrznie.
Sposobem na wymuszenie, aby przeglądarka nie obsługiwała pliku wewnętrznie, jest zmiana nagłówków (preferowana dystrybucja treści lub typ zawartości), aby przeglądarka nie próbowała obsługiwać pliku wewnętrznie. Możesz to zrobić, pisząc na serwerze WWW skrypt, który dynamicznie ustawia nagłówki (np. Download.php) lub konfigurując serwer WWW, aby zwracał różne nagłówki dla pliku, który chcesz pobrać. Możesz to zrobić dla każdego katalogu na serwerze internetowym, co pozwoliłoby ci uciec bez pisania jakiegokolwiek php lub javascript - po prostu umieść wszystkie obrazy do pobrania w tej jednej lokalizacji.
źródło
Prosty kod do pobrania obrazu z kliknięciem obrazu za pomocą php
źródło
Pobieranie obrazu za pomocą klikania obrazów!
Zrobiłem ten prosty kod! :)
źródło