Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] błąd filesize()
Forum PHP.pl > Forum > Przedszkole
Gość
witam,
mam taka funkcje:
  1. <?php
  2. function DownloadFile($file,$nazwa) { // $file = include path
  3.  
  4.            header('Content-Description: File Transfer');
  5.            header('Content-Type: application/octet-stream');
  6.            header('Content-Disposition: attachment; filename='.$nazwa);
  7.            header('Content-Transfer-Encoding: binary');
  8.            header('Expires: 0');
  9.            header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  10.            header('Pragma: public');
  11.            header('Content-Length: ' . filesize($file));
  12.            ob_clean();
  13.            flush();
  14.            readfile($file);
  15.    }
  16. ?>


lecz przy uzyciu czasami wywala mi blad:
Warning: filesize(): Stat failed for http://cycu1989.wrzuta.pl/aud/file2/7VZc5AbBIJ/ekwador_11 (errno=2 - No such file or directory) in /home/qqqqq/qqqqq/qqqqq/qqqqq/qqqqq/funkcje.php on line <b>11

czym to moze byc spowodowane ? jak to naprawic?

pzdr!
hiszpanespaniol
może to zabezpieczenie przed hotlinkowaniem na wrzuta.pl? "no such file or directory" czyli nie ma takiego pliku lub katalogu. linki do plików się zmieniają, żeby nie było sytuacji że ktoś hotlinkuje. możliwe, że Twoja funkcja bedzie działać jedynie dla tych plików które wgrałes i dostałeś do nich link od serwisu wrzuta.pl, a nie do tych np. przeglądanych normalnie w serwisie.

edit:
racja erix. mnie zmyliło, ze kolega napisał "czasem" i już nie pomyślałem.
erix
Plik dla funkcji IO w PHP (w tym filesize" title="Zobacz w manualu PHP" target="_manual) MUSI być dostępny dla systemu plików serwera. winksmiley.jpg

Stąd nie da się pobrać rozmiaru w ten sposób. tongue.gif

Zajrzyj do manuala dla filesize" title="Zobacz w manualu PHP" target="_manual, w komentarzach znajdziesz rozwiązanie. winksmiley.jpg
-chez-
gdyz moj serwer ma ograniczone wiekszosc funkcji poradzilem sobie w inny sposob, zaraz dam rozwiazanie, dzieki Ci erix i hiszpanespaniol winksmiley.jpg)

Cytat
function hHeader($urll){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urll);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$r = curl_exec($ch);
return $r;
}
function DownloadFile($file,$nazwa) { // $file = include path

preg_match_all('|Location:(.*)Vary:|ismUu', hHeader($file), $wynik);
$wynik = trim($wynik[1][0]);
$header = hHeader($wynik);

preg_match_all('|Length:(.*)Last|ismUu', $header, $out);
$lLength = $out[1][0];
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.