Mam taki oto problem
Korzystam ze skryptu, ktory wysyła pliki do usera. Niektóre pliki są przeznaczone tylko dla zalogowanych osob, wiec nie mogą być dostępne w prosty sposob przez linka.
oto kod (tak wiem ze juz pokazywalem go z okazji innego pytania)
<?php private $fileName; private $filePosition; private $extension; public function __construct($newName=''){ $this->fileName=$newName; $this->fullPatch = 'files/' .$this->fileName; } public function sendFileToUser(){ //wysyla plik do przegladarki $this->prepareHeaderToSend(); $this->sendFile(); } private function sendFile(){ //wysyla plik } private function prepareHeaderToSend () { //ustawiam Content-Type dla danego pliku switch ($this->extension) { case 'pdf': $type='application/pdf'; break; case 'exe': $type='application/octet-stream'; break; case 'zip': $type='application/zip'; break; case 'doc': $type='application/msword'; break; case 'xls': $type='application/vnd.ms-excel'; break; case 'ppt': $type='application/vnd.ms-powerpoint'; break; case 'gif': $type='image/gif'; break; case 'png': $type='image/png'; break; case 'jpeg': case 'jpg': $type='image/jpg'; break; case 'mp3': $type='audio/mpeg'; break; case 'wav': $type='audio/x-wav'; break; case 'mpeg': case 'mpg': case 'mpe': $type='video/mpeg'; break; case 'mov': $type='video/quicktime'; break; case 'avi': $type='video/x-msvideo'; break; //Ponizszych w zadnym wypadku nie mozna sciagac case 'php': case 'htm': case 'html': throw new Exception('wrong file type'); break; default: $type='application/force-download'; } } } ?>
oraz
<?php $f->sendFileToUser(); ?>
plik w którym znajduje się ten kod to download.php
i teraz problem.
Klikam na linka do pliku, aby go pobrać - wszystko działa. Po ściagnięciu klikam pobierz ponownie i opera radzi sobie z tym bez problemu, natomiast ff sciąg plik download.php w którym jest zawartość pliku jaki został do niego wysłany (czyli wystarczy zmienić rozszerzenie i jest oki).
Szukałem trochę w googlach, ale nie znalazłem nic ciekawego ;(
Zastanawiam się czy nie zglosić mozilli tego na bugzille, ale wolę jeszcze Was o zdanie zapytać.
Ma ktoś może pomysł co z tym fantem zrobić??
uppps wysłalo sie dwa razy - czy ktoś może to skasować??