Есть пхп-скрипт который скрывает путь к файлу и позволяет его сохранять определенным групам пользователей. Сам скрипт сам по себе работает безотказно, но с ВБАДВАНСЕД начинаються проблемы :(
Проблема: Скрипт сохраняет только первые 10.4-11мегабайт файла, дальше прекращает загрузку.
В ВБадвансед создана ПХП страница которая ссылаеться на этот фаил
PHP код:
<?
$ccserverfolder_path='/home/xxx.com/htdocs/access';
$vbuserid=$vbulletin->userinfo['userid'];
$result=mysql_query("SELECT usergroupid FROM user WHERE userid='$vbuserid'");
while ($row=mysql_fetch_array($result))
{
$vbusergroupid=$row[usergroupid];
}
if($vbusergroupid==6 OR $vbusergroupid==9)
{
$result=mysql_query("SELECT * FROM cc_downloads WHERE ccd_id='$_GET[fid]'");
while ($row=mysql_fetch_array($result))
{
$num_rows = mysql_num_rows($result);
if ($num_rows==0)
{
echo ('Фаил не существует');
}
else
{
$real_path = $ccfolder_path."/".$row[ccd_folder]."/".$row[ccd_filename];
$real_spath = $ccserverfolder_path."/".$row[ccd_folder]."/".$row[ccd_filename];
$content_type = $row[ccd_filetype];
$file_name = $row[ccd_filename];
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: $content_type");
header("Content-Disposition: attachment; filename=\"".basename($file_name)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($real_spath));
readfile("$real_spath");
exit();
}
}
}
?>
Скрипт проверяет принадлежность пользователя к той или иной групе, которым разрешена загрузка файлов.
Таблица базы содержит следующие ячейки:
ccd_id - уникальный индетификатор
ccd_filetype - маймтайп файла
ccd_filename - имя файла
Переменные:
fid - передает в запросе ИД загружаемого файла
vbuserid - уникальный индитификатор пользователя (по которому проверяеться usergroupid)
Есть несколько вариантов как можно выкрутиться но все они не подходят :(
Добавлено через 3 минуты
Часть кода взята с хака "DownloadsII 5.0.5 Rus (1.7)"
Фаил урезаеться только через VBadvanced - выходит, что PHP.INI сдесь не причем.
Возможно какието глобальные переменные воблы не дают полностью сохранить фаил?
Добавлено через 7 минут
* переменная
ccd_folder - подкаталог в котором содержиться фаил
Добавлено через 2 часа 11 минут
Проблема решена следующим путем:
Создан модуль (пхп фаил) - в опциях указано (Очистить файл вывода - НЕТ ... если поставить ДА, будет урезать фаил)
Создана страница на кторой выводиться модуль