Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] błąd filesize()
-Gość-
post
Post #1





Goście







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!
Go to the top of the page
+Quote Post
hiszpanespaniol
post
Post #2





Grupa: Zarejestrowani
Postów: 213
Pomógł: 39
Dołączył: 7.04.2008
Skąd: 3city

Ostrzeżenie: (0%)
-----


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.

Ten post edytował hiszpanespaniol 16.11.2008, 23:59:42
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Stąd nie da się pobrać rozmiaru w ten sposób. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Zajrzyj do manuala dla filesize" title="Zobacz w manualu PHP" target="_manual, w komentarzach znajdziesz rozwiązanie. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
--chez--
post
Post #4





Goście







gdyz moj serwer ma ograniczone wiekszosc funkcji poradzilem sobie w inny sposob, zaraz dam rozwiazanie, dzieki Ci erix i hiszpanespaniol (IMG:http://forum.php.pl/style_emoticons/default/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];
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 05:18