Sprawdź linki do pobrania
Wcześniej wspomniano o tym zamek błyskawiczny I exe Pliki pobierają automatycznie, bez użycia skryptu PHP. Najpierw utwórz plik HTML z następującym kodem. Tutaj zdefiniowane są cztery elementy kotwicy, aby pobrać cztery typy plików. Te typy plików obejmują pliki tekstowe, zip, pdf i jpg.
Pobierać.html
Wyjście
Poniższe okno dialogowe pojawi się, aby pobrać plik po kliknięciu linku pliku zip. Użytkownik może następnie pobrać plik lub otworzyć plik w Menedżerze Archiwum.
Jeśli klikniesz plik obrazu, obraz zostanie otwarty automatycznie w przeglądarce, jak pokazano przy następujących wyjściach. Musisz zapisać plik, aby wykonać kopię pliku obrazu na dysk lokalnym. W ten sam sposób, po kliknięciu linków PDF i plików tekstowych, zawartość pliku zostanie otwarta w przeglądarce bez pobierania pliku. Rozwiązaniem tego problemu jest pobranie pliku siłą za pomocą wbudowanego PHP Readfile () funkcjonować.
Pobierz plik za pomocą funkcji ReadFile ()
Readfile () Funkcja jest używana w skrypcie PHP do przymusowego pobrania dowolnego pliku bieżącej lokalizacji lub pliku ze ścieżką pliku. Składnia tej funkcji podano poniżej.
Składnia
int readFile (String $ filename [, bool $ użyj_include_path = false [, zasób $ context]]))
Ta funkcja może wziąć trzy argumenty. Pierwszy argument jest obowiązkowy, a pozostałe dwa argumenty są opcjonalne. Pierwszy argument, $ nazwa pliku, przechowuje nazwę pliku lub nazwę pliku ze ścieżką, która będzie pobierać. Domyślna wartość drugiego parametru, $ użyj_include_path, jest fałszywe i zostanie ustawione na true, jeśli nazwa pliku ze ścieżką jest używana w pierwszym argumencie. Trzeci argument, $ kontekst, służy do wskazania zasobu strumienia kontekstu. Ta funkcja zwraca liczbę bajtów odczytanych z pliku wymienionego w pierwszym argumencie. Zastosowania tej funkcji pokazano w następujących dwóch przykładach.
Przykład 1: Pobierz plik z nazwą pliku
W tym przykładzie utworzymy plik HTML z następującym kodem, w którym nazwa pliku zostanie przekazana jako parametr nazwanego adresu URL ścieżka, a wartość tego parametru zostanie przekazana do pliku PHP o nazwie pobierać.php.
Pobierz2.html
Utworzymy plik PHP z następującym kodem, aby pobrać plik przymusowo. Tutaj isset () funkcja służy do sprawdzenia, czy $ _Get ['ścieżka'] definiuje. Jeśli zmienna jest zdefiniowana, plik istnieje() Funkcja służy do sprawdzenia, czy plik istnieje na serwerze. Następnie nagłówek() Funkcja służy do ustawienia niezbędnych informacji nagłówka przed użyciem Readfile () funkcjonować. Basename () funkcja służy do odzyskania nazwy pliku i rozmiar pliku() Funkcja służy do odczytu rozmiaru pliku w bajtach, który zostanie wyświetlony w oknie dialogowym Otwarcie, aby pobrać plik. spłukać() Funkcja służy do wyczyszczenia bufora wyjściowego. Readfile () Funkcja jest używana tylko z nazwą pliku tutaj, tutaj.
pobierać.php
if (isset ($ _ get ['ścieżka']))Wyjście
Następujące dane wyjściowe pojawi się po kliknięciu linku do pobrania pliku obrazu. Rozmiar pliku Róża.jpg obraz jest 27.2 kb, Jak pokazano w oknie dialogowym. Możesz pobrać plik, wybierając Zapisz plik przycisk opcji i naciśnięcie OK przycisk.
Przykład 2: Pobierz plik ze ścieżką pliku
Jeśli plik istnieje w danej lokalizacji pliku, ścieżka pliku będzie wymagana do wspomnienia w adresie URL. W tym przykładzie utworzymy plik HTML z następującym kodem, który przekaże nazwę pliku ze ścieżką pliku:
Pobierz3.html
Utworzymy plik PHP z następującym kodem, aby pobrać plik ze ścieżki pliku. Kod PHP w poprzednim przykładzie zostanie nieznacznie zmodyfikowany w celu pobrania pliku z danej ścieżki. clearStateCache () Funkcja służy do wyczyszczenia pamięci podręcznej, która była wcześniej przechowywana. W dwóch argumentach są używane w Readfile () funkcjonować.
Pobierz2.php
if (isset ($ _ get ['ścieżka']))Wyjście
Po kliknięciu linku do pobierania pliku PDF pojawi się następujące dane wyjściowe.
Film instruktażowy
Wniosek
W tym artykule przedstawiono prosty sposób przymusowego pobrania dowolnego pliku za pomocą skryptu PHP, aby pomóc czytelnikom dodać funkcję pobierania w ich skrypcie.