Download file

Материал из Eludia
Перейти к: навигация, поиск

Описание

Инициирует процедуру копирования файла с сервера на клиент (download). Передаваемое содержимое должно храниться в файловой системе, в одной из поддиректорий docroot. Смысл использования этой процедуры вместо перенаправления клиента на статический файл:

  • ваша директория с файлами может оставаться недоступной для чтения извне, что позволяет контролировать права доступа средствами приложения;
  • вы можете переопределить имя файла ("Проект.mpp" вместо "3543543574537.tmp").

Опция path может задавать как путь относительно docroot (там файл ищется в первую очередь), так и абсолютный. Если файл не найден, происходит ошибка (die ('File not found'));

Опция delete позволяет стереть файл после его отправки клиенту. Такое использование типично для временных файлов, которые бессмысленно хранить долго (например, статистические отчёты по оперативным данным).

При использовании этой функции (как и download_file_header), необходимо иметь в виду следующее:

  • MSIE (по крайней мере, 7.0.5730.11 под Windows XP) не в состоянии открыть успешно скачанный (downloaded) файл, если его имя длиннее 125 символов;
  • MSIE 6 (по крайней мере, 6.0.3790.3959 под Windows Server 2003) некорректно отображает имена файлов с двойными кавычками. В MSIE 7 эта проблема, по-видимому, решена.

Если информация о файле (имя, путь) и, тем более, его содержимое, хранятся в таблице БД, то следует использовать процедуру sql_download_file.

Синопсис (Perl5)

	download_file ({
		path      => '/i/upload/images/' . $real_filename,
		file_name => "$item->{label}.mpp",
#		delete    => 1               # если требуется стереть файл сразу после отправки
	});
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Разработчику
Администратору
Инструменты