if(strcasecmp($attach['attach_ext'], "расширение"))
{
//стандарный обработчик загрузки файла (см. выше)
}
else
{
$ext_file = //модификация загруженного через $fp = fopen($file) и прочитанного через fread($fp, 1<<20) файла в тип string//
header( "Content-Type: ".$this->ipsclass->cache['attachtypes'][ $attach['attach_ext'] ]['atype_mimetype'] );
header( "Content-Disposition: inline; filename=\"".$attach['attach_file']."\"" );
header( "Content-Length: ".(string)(strlen($ext_file)) );
echo $ext_file;
flush();
exit();
}
Сама проблема(Ы) - файл скачивается не "битым", но(!):
Проблема №1: при скачивании в браузере Opera счетчик скачиваний увеличивается на 2, в Mozilla FireFox все норм, в IE вообще пытается скачать index.php (но содержимое файла соотвествует аттачу).
Проблема №2: в любом браузере перед скачиванием очень большая задержка (~16-20 сек)...
Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.
Вопрос
xbtt
Версия форума 2.3.1
Была поставлена задача модифицировать аттач с определенным расширением перед оптравкой клиенту.
В итоге в файле "/sources/classes/attach/class_attach.php" в функции show_attachment после раздела
//----------------------------------------- // Open and display the file.. //----------------------------------------- header( "Content-Type: ".$this->ipsclass->cache['attachtypes'][ $attach['attach_ext'] ]['atype_mimetype'] ); header( "Content-Disposition: inline; filename=\"".$attach['attach_file']."\"" ); header( "Content-Length: ".(string)(filesize( $file ) ) ); //print $contents; //readfile( $file ); @ob_end_clean(); if( $fh = fopen( $file, 'rb' ) ) { while( !feof($fh) ) { echo fread( $fh, 4096 ); flush(); @ob_flush(); } @fclose( $fh ); } exit();был поставлен соответствующий хук:
if(strcasecmp($attach['attach_ext'], "расширение")) { //стандарный обработчик загрузки файла (см. выше) } else { $ext_file = //модификация загруженного через $fp = fopen($file) и прочитанного через fread($fp, 1<<20) файла в тип string// header( "Content-Type: ".$this->ipsclass->cache['attachtypes'][ $attach['attach_ext'] ]['atype_mimetype'] ); header( "Content-Disposition: inline; filename=\"".$attach['attach_file']."\"" ); header( "Content-Length: ".(string)(strlen($ext_file)) ); echo $ext_file; flush(); exit(); }Сама проблема(Ы) - файл скачивается не "битым", но(!):
Проблема №1: при скачивании в браузере Opera счетчик скачиваний увеличивается на 2, в Mozilla FireFox все норм, в IE вообще пытается скачать index.php (но содержимое файла соотвествует аттачу).
Проблема №2: в любом браузере перед скачиванием очень большая задержка (~16-20 сек)...
Ссылка на комментарий
Поделиться на других сайтах
8 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.