Отправка сообщения






Добро пожаловать!

Отдаем файлы на скачивание в Битрикс

skachivanieИногда при запросе некоторого файла в браузере необходимо передать его таким образом, чтобы пользователю было предложено сохранить этот файл на диск. В типовых случаях открывая, к примеру, PDF-файл по прямой ссылке, браузер пытается открыть его в своем окне, но как сделать так, чтобы можно было предложено сохранить этот файл на вашем компьютере?

Знаете ли вы или нет, но всё дело в заголовках ответа веб-сервера, которые посылаются браузеру в виде ответа на ваш запрос. Посылая нужные заголовки браузеру, можно инициировать появление окна с предложением для непосредственного скачивания файла. Рассмотрим пример. В примере, API битрикса главным образом используется для получения пути к файлу. Это говорит о том, что зная путь к файлу, можно сделать отправку его и без использования API битрикса.

<?
// подключаем API Bitrix
require_once($_SERVER['DOCUMENT_ROOT'] .
"/bitrix/modules/main/include/prolog_before.php");

// ID файла
$fileID = 123;

// получаем массив полей файла
$dwFile = CFile::GetFileArray($fileID);
	
	if ($dwFile){
		// путь до файла
		$file = $_SERVER['DOCUMENT_ROOT'].$dwFile['SRC'];
		
		// отправка
		header('Content-Description: File Transfer');
		header('Content-type: application/octet-stream');
		header('Content-Disposition: attachment; filename="'.$dwFile['FILE_NAME'].'"');
		header('Content-Transfer-Encoding: binary');
		header('Expires: 0');
		header('Cache-Control: must-revalidate');
		header('Pragma: public');
		header('Content-Length: '.filesize($file));
		readfile($file);

	} else echo 'Не удалось получить файл!';
?>
Добавил: htmaker, 19.03.2015 г.
 
плохослабосойдетхорошоотлично (Еще не оценили)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Форум digital-planet.info

Комментарии

  • Загрузка...

Наверх