Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Skrypt do ściągania plików mp3
Forum PHP.pl > Forum > Przedszkole
mrr
Witam!

Chce zrobic na stronie http://podcast.fructi.org/ by po kliknięciu Download niezależnie od przeglądarki i zainstalowanego Quick Time po wybraniu miejsca na dysku plik mp3 się ściągał, i zliczał ściągnięcia danego pliku. Proszę o pomoc.
d3ut3r
Generalnie jeżeli chcesz wymusić na przeglądarce otwarcie okna pobierania pliku to nie możesz linkować bezpośrednio do pliku mp3, ponieważ wtedy przeglądarka uruchamia domyślnie skojarzony dodatek z tym plikiem. powinieneś zatem napisać skrypt pobierz.php (lub coś w tym stylu) a jego zawartość będzie wyglądała mniej więcej tak:

  1. <?php
  2.  
  3. $plik="piosenka.mp3" //nazwa pliku który będziesz wysyłał użytkownikowi
  4. //sprawdzamy czy plik istnieje
  5. if (file_exists($plik)) {
  6. header('Content-Type: application/octet-stream');
  7. header('Content-Disposition: attachment; filename='.basename($plik));
  8. header('Content-Transfer-Encoding: binary');
  9. header('Content-Length: ' . filesize($plik));
  10. //tutaj możesz zwiększyć liczbę pobrań danego pliku poprzez zapytanie do bazy
  11. readfile($plik);
  12. }
  13.  
  14. ?>


przykład nie testowany ale powinien działać , przykład zaczerpnięty z manuala php
mrr
a żeby jeden skrypt działał na wszystkie mp3 np downloads.php?id=1 w bazie pod id było by nazwa pliku mp3 oraz miejsce do zliczania pobrań?
3lanc
To sobie stwórz bazę taką...
mrr
i będzie działać ten skrypt u góry?
d3ut3r
zamiast

  1. $plik="piosenka.mp3";


dasz fragment który na podstawie id będzie wybierał z bazy danych nazwę pliku i podstawisz tą nazwę do zmiennej plik to będzie działać.
mati0707
A nie łatwiej tak?
  1. <?php
  2.  
  3. $plik= 'sounds/'.$_GET['file'].''; //sounds to folder w którym są tylko pliki dźwiękowe
  4. //sprawdzamy czy plik istnieje
  5. if (file_exists($plik)) {
  6. header('Content-Type: application/octet-stream');
  7. header('Content-Disposition: attachment; filename='.basename($plik));
  8. header('Content-Transfer-Encoding: binary');
  9. header('Content-Length: ' . filesize($plik));
  10. //tutaj możesz zwiększyć liczbę pobrań danego pliku poprzez zapytanie do bazy
  11. readfile($plik);
  12. }
  13.  
  14. ?>

Potem wpisujemy
www.example.com/download.php?file=plik.mp3
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.