Модераторы: 2man
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема со скачкой файла из скрипта 
:(
    Опции темы
Alex103
Дата 4.10.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



Добрый вечер уважаемые программисты. Есть задача, встроить скрипт скачки файлов в компонент 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 как то ограничивает скачку??  smile 



--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Joomla | Следующая тема »


 




[ Время генерации скрипта: 0.0405 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.