Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmiana nazwy pliku w locie z downloadem po otwarciu strony.
Forum PHP.pl > Forum > Przedszkole
majesgrudziadz
Jak mogę zrobić zmianę nazwy pliku w locie z downloadem po otwarciu strony.

plik nazywa się 201205101232.replay

po kliknięciu w jego link otwiera się nowe okno (POPUP)

i automatycznie rozpoczyna sciąganie w/w pliku ale o nazwie downloadreplay.replay

jak mogę zrobić coś takiego ?
Spawnm
header('Content-Disposition: attachment; filename="download.replay"');
Astarot
  1.  
  2. header('Content-Disposition:attachment; filename="' . $fname . '"');
  3. header('Accept-Ranges: bytes');
  4. header('Content-Type: application/x-unknown');
  5. header('Content-Transfer-Encoding: binary');
  6. //header('Content-Length: ' . $c_length);
  7.  
  8. if ($fp = fopen($file, 'rb'))
  9. {
  10. flock($fp, 1);
  11. fseek($fp, $r_start);
  12. echo(fread($fp, $c_length));
  13. flock($fp, 3);
  14. fclose($fp);
  15. }
majesgrudziadz
Cytat(Astarot @ 19.09.2012, 16:06:57 ) *
  1.  
  2. header('Content-Disposition:attachment; filename="' . $fname . '"');
  3. header('Accept-Ranges: bytes');
  4. header('Content-Type: application/x-unknown');
  5. header('Content-Transfer-Encoding: binary');
  6. //header('Content-Length: ' . $c_length);
  7.  
  8. if ($fp = fopen($file, 'rb'))
  9. {
  10. flock($fp, 1);
  11. fseek($fp, $r_start);
  12. echo(fread($fp, $c_length));
  13. flock($fp, 3);
  14. fclose($fp);
  15. }


widzialem ten przyklad na necie problem w tym ze tam tak samo jak i tu jest sam kod bez opisy zmiennych

fp r_start c_lenght

skoro kopiujesz przyklady z innych for sprawdz je czy dzialaja sprobuj wyjasnic ich dzialanie i podaj po co sa te zmienne.
Astarot
ciężko sprawdzić co robią poszczególne funkcje na php.net?

$fname = basename($file); // lokalizacja naszego pliku
$fsize = filesize($file); // wielkość pliku
$ftime = filemtime($file); //data modyfikacji pliku
$range = $_SERVER['HTTP_RANGE']; //zakres bajtów do pobrania

$r_start = 0; // początek bajtów do pobrania
$c_length = $fsize; // koniec bajtów, oznaczający wielkość pliku
majesgrudziadz
nie jest ciężko lecz jak odpowiadasz to w całości czy pół słowami.

Odpowiedz mi na pytanie czy sprawdzałeś działanie powyższego kodu ?

Plik oryginalny ma 1,28Mb
Plik który ściągam z nową nazwą ma 0,08Mb

Czym to może być spowodowane ?

ok poradzilem sobie w troche inny sposob.

jednak sobie nie poradzilem

za kazdym razem z tego kodu co podales chce sciagac 102B a nie caly plik ... moze ktos pomoc co jest nie tak ?

znalazlem w necie cosik takiego

  1. <?php
  2. $new_filename = 'something';
  3. $mycurl = curl_init();
  4. curl_setopt($mycurl, CURLOPT_URL, 'http://www.example.com/somefile.txt');
  5. //curl_setopt($mycurl, CURLOPT_HEADER, true);
  6. curl_setopt($mycurl, CURLOPT_RETURNTRANSFER, true);
  7. curl_setopt($mycurl, CURLOPT_FOLLOWLOCATION, true);
  8. curl_setopt($mycurl, CURLOPT_AUTOREFERER, true);
  9. $curl_output = curl_exec($mycurl);
  10. if(!curl_errno($mycurl))
  11. {
  12. header('Content-type:text/plain');
  13. header('Content-Disposition: attachment; filename ="'.$new_filename.'.txt"');
  14. echo($curl_output);
  15. exit();
  16. }
  17. else
  18. {
  19. echo(curl_error($mycurl));
  20. }
  21. ?>


moze mi ktos pomoc dlaczego sciaga mi uszkodzony plik ?
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.