Добрый вечер уважаемые программисты. Есть задача, встроить скрипт скачки файлов в компонент Joomla 1.5.x , я создал отдельный шаблон для данного представления и в нем пытаюсь скриптом выдать файл из ссылки которую передаю туда. Вот код шаблона: | Код | <?php defined('_JEXEC') or die('Restricted access');
// $filename = $this->item_url; $filename = $this->item_url; // если файла нет if( !file_exists( './files/'.$filename ) ) { header ( 'HTTP/1.1 404 Not Found' ); die(); } // получаем размер файла $fsize = filesize( './files/'.$filename ); // дата модификации файла для кеширования $ftime = date( 'D, d M Y H:i:s T', filemtime( './files/'.$filename ) ); // смещение от начала файла $range = 0; // пробуем открыть $handle = @fopen( './files/'.$filename, 'rb' );
// если не удалось if( !$handle ){ header ( 'HTTP/1.1 404 Not Found' ); die(); } // если запрашивающий агент поддерживает докачку if( $_SERVER['HTTP_RANGE'] ) { $range = $_SERVER['HTTP_RANGE']; $range = str_replace( 'bytes=', '', $range ); $range = str_replace( '-', '', $range ); // смещаемся по файлу на нужное смещение if ( $range ) fseek( $handle, $range ); } // если есть смещение if( $range ) { header( 'HTTP/1.1 206 Partial Content' ); } else { header( 'HTTP/1.1 200 OK' ); } echo $fsize."<br />"; echo $ftime."<br />"; echo $handle;
print_r($_SERVER);
header( 'Content-Disposition: attachment; filename="'.$filename.'"' ); header( 'Last-Modified: '.$ftime ); header( 'Content-Length: '.($fsize-$range) ); header( 'Accept-Ranges: bytes' ); header( 'Content-Range: bytes '.$range.'-'.($fsize - 1).'/'.$fsize );
switch( $mimetype ) { case 'pdf' : $ctype = 'application/pdf'; break; case 'zip' : $ctype = 'application/zip'; break; case 'doc' : $ctype = 'application/msword'; break; case 'xls' : $ctype = 'application/vnd.ms-excel'; break; case 'gif' : $ctype = 'image/gif'; break; case 'png' : $ctype = 'image/png'; break; case 'jpeg': case 'jpg' : $ctype = 'image/jpg'; break; case 'mp3' : $ctype = 'audio/mpeg'; break; case 'wav' : $ctype = 'audio/x-wav'; break; case 'mpeg': case 'mpg' : case 'mpe' : $ctype = 'video/mpeg'; break; case 'mov' : $ctype = 'video/quicktime'; break; case 'avi' : $ctype = 'video/x-msvideo'; break; default : $ctype = 'application/octet-stream'; } header( 'Content-Type: '.$ctype ); readfile('./files/'.$filename); fclose( $handle );
?>
|
лежит он в components/com_zoo/views/payment/tpl/download.php , но файл на скачку он выдает 0 КБ файлы лежат в корне сайта в папке files/ Заметил что если расположить аналогичный скрипт в корне сайта и выполнить, он будет работать и качать файл как полагается. Мож Joomla как то ограничивает скачку??
--------------------
Мой адресс не дом и не улица, мой адресс WWW
|