Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zwrcanie dowolnego pliku, jakby był ściągany
Forum PHP.pl > Forum > PHP
expert
Chcę zrobić system ściąganie plików> I chcę zrobić, żeby pliki nie ściągało się z takiego adresu download/jakiśplik.zip tylko żeby po wejście w dany adres strona zwracał plik. Np. wchodzę w adres www.aaa.pl/sciagnijplik.php?file=adasdasd45f, i wyskakuje mi monit pobierana pliku spod tego adresu, choć na serwerze jest on pod inną lokalizacją.

Mam nadzieję, że zrozumiałe.
phpion
header" title="Zobacz w manualu PHP" target="_manual i szukaj przykładów zawierających słowo "attachment".
expert
  1. <?php
  2. // We'll be outputting a PDF
  3. header('Content-type: application/pdf');
  4.  
  5. // It will be called downloaded.pdf
  6. header('Content-Disposition: attachment; filename="downloaded.pdf"');
  7.  
  8. // The PDF source is in original.pdf
  9. readfile('original.pdf');
  10. ?>


Czyli najpierw dołączam typ pliku
header('Content-type: application/zip');

lokalizację pliku
header('Content-Disposition: attachment; filename="download/jakiśplik.zip"');

i odczytuję plik
readfile('download/jakiśplik.zip');

Dobrze?

EDIT:

Oki, działa smile.gif dzięki

A jak zrobić, aby był normalny pasek ściągania w % a nie że nei wiadomo ile czasu zostało. zrobiłem coś takiego, ale nie działa:
header("Content-Length: ".filesize('downloads/'.$file)/1024);
cichy380
oczywiście chodzi o pasek postępu tworzony przez przeglądarkę
musimy jej przekazać jaki jest faktyczny rozmiar pliku i robisz właśnie:

header("Content-Length: (...)");

tylko rozmiar podajesz w bajtach, więc nie dziel przez 1024, daj normalnie:

header("Content-Length: ".filesize('downloads/'.$file));
expert
W ff i opera pokazuje czas pobierania nieznany, a w IE nie chce pobrać pliku. link do pliku: http://www.autoinstal.pl/pobierz-1
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.