Joomla компонент + принудительная загрузка - PullRequest
0 голосов
/ 16 августа 2011

Я закодировал компонент (Галерея). И я хочу объединить принудительную загрузку для всех элементов. Но это не сработает :(, просто получаю поврежденные файлы. Я попытался использовать точно такой же код и запустить его за пределами Joomla, и он работает нормально. Я создал шаблон, который полностью пуст только есть, но это не помогает.

Моя (com_component / views / принудительная загрузка / tmpl / default.php)

<?php 
if(!isset($_GET["id"]) || empty($this->item)) {
    echo "Invalid request";
    die();
}

$path       = "images/randomtest/catid".$this->item->cat_id."/";
$filename   = $path.$this->item->filename;
$file = $this->item->filename;

if(!file_exists($filename)) {
    echo "Error: File not found";
    die();
}

header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: Content-type: application/octet-stream");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile($filename);
?>

1 Ответ

0 голосов
/ 17 августа 2011

Первое: вы используете $_GET['format'] = raw? Если не в вашем контроллере, сделайте

if(!isset($_GET["format"]) || $_GET["format"]!='raw') {
    $this->setRedirect( JURI::current(). '?format=raw' );
    return false;
}

также в вашем заголовке вы объявили тип контента как: application / octet-stream, вы уверены, что хотите это?

также здесь:

$path       = "images/randomtest/catid".$this->item->cat_id."/";

вам нужно, весь SYSTEM PATH не только локальный, попробуйте использовать:

$path       = JPATH_SITE."/images/randomtest/catid".$this->item->cat_id."/";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...