Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapisywanie na serwer oryginalnej nazwy pliku z serwera zdalnego
Forum PHP.pl > Forum > PHP
reki
Witam,
Pobieram z dynamicznego linka plik mp3, zapisuje mi go pod nazwa s.1, później zmieniam go na pobrana z http_response_header[6] nazwę pliku.
Sposób ten staje się nieskuteczny, pobiera tylko jedna nazwę pliku, nie pobiera następnej w pętli, przez co mam ściągnięty jeden plik, później wywala błąd:

  1. Warning: rename(s.1,) [function.rename]: No such file or directory in public_html/sciagarka/index.php on line 24
  2.  
  3.  
  4. Fatal error: Cannot redeclare oddo() (previously declared in public_html/sciagarka/index.php:18) in public_html/sciagarka/index.php on line 18

.

Istnieje inny sposób, aby ściągnąć plik mp3 z poniższego linka z zachowaniem jego oryginalnej nazwy? (taka jak przy pobieraniu przez przeglądarkę).


  1. for($i=4036;$i<4050;$i++)
  2. {
  3. copy('http://www.adres.pl/search/download_file.php?id='.$i.'&dur=0&type=mp3', 's.1');
  4.  
  5. $nazwa_pliku=$http_response_header[6];
  6. function oddo($nazwa_pliku,$od,$do)
  7. {
  8. eregi($od.'.*'.$do,$nazwa_pliku,$tmp);return eregi_replace($od.'|'.$do,'',$tmp[0]);
  9. }
  10.  
  11. $wartosc = oddo($nazwa_pliku,'filename="','"');
  12. rename("s.1", $wartosc);
  13. print $wartosc."<br>";
  14. }


z góry dziękuje za odpowiedź smile.gif
ssstrz
Linijkę: 3 z listingu 2 zmień na:
  1. copy('http://www.adres.pl/search/download_file.php?id='.$i.'&dur=0&type=mp3', ('s.'.($i-4035)));
reki
Zmieniłem, lecz ten sam efekt co wyżej,

Skrypt działa następująco, na koncie ftp tworzy plik
s.1 (pobiera go w calosci)
zmiena nazwe pliku na pobrana z $http_response_header[6];
utworzenie pliku s.2 - pobranie go w calosci

wyrzucenie błędu:
Warning: rename(s.1,Wherever You Are.mp3) [function.rename]: No such file or directory in public_html/sciagarka/index.php on line 24

Fatal error: Cannot redeclare oddo() (previously declared in public_html/sciagarka/index.php:18) in public_html/sciagarka/index.php on line 18


Nie istnieje jakas prostrza metoda?
ssstrz
  1. for($i=4036;$i<4050;$i++)
  2. {
  3. copy('http://www.adres.pl/search/download_file.php?id='.$i.'&dur=0&type=mp3',('s.'.($i-4035)));
  4.  
  5. $nazwa_pliku=$http_response_header[6];
  6.  
  7.  
  8. $wartosc = oddo($nazwa_pliku,'filename="','"');
  9. rename(('s.'.($i-4035)), $wartosc);
  10. print $wartosc."<br>";
  11. }
  12.  
  13. //deklaracja
  14. function oddo($nazwa_pliku,$od,$do)
  15. {
  16. eregi($od.'.*'.$do,$nazwa_pliku,$tmp);return eregi_replace($od.'|'.$do,'',$tmp[0]);
  17. }
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.