Есть ли причина, по которой вы не хотите полностью обходить Symfony и просто передавать файл через HTTP-сервер (Apache, Nginx и т. Д.)?
Просто удалите загруженные файлы где-нибудь в корне документа и позвольте вашему HTTP-серверу делать то, что он делает лучше всего.
Обновление: Хотя код Symfony2, опубликованный @ Джейсоном Светтом , будет работать в 99% случаев - я просто хотел убедиться в том, что задокументированы альтернативные варианты. Другой способ обеспечить загрузку - использовать модуль Lighttpd mod_secdownload
. Это было бы идеальным решением для больших файлов или файлов, которые необходимо быстро обслуживать при минимальном использовании памяти.