Не помещайте эти файлы в папку, доступную через Интернет.
Если вы создаете экспорт данных, который не нужно хранить, создайте файл во временной папке (также не в общедоступной папке) и используйте <cfcontent>
, чтобы отправить файл в браузер, который будет представить пользователю диалог загрузки. Вы удалите файл с сервера как часть этого процесса, поэтому вы будете запускать этот процесс каждый раз, когда кто-то запрашивает экспорт.
Это поддерживает ваш сервер в чистоте и сохраняет файл за логином. Вот суть, которую я создал, чтобы заглушить этот процесс . Он использует <cfspreadsheet>
для завершения экспорта. Вот суть кода:
<cfspreadsheet action="write" filename="#config.full_temp_name#" query="config.q" />
<cfspreadsheet action="read" src="#config.full_temp_name#" name="local.xls" />
<cffile action="delete" file="#config.full_temp_name#" />
<cfif len(arguments.fileName) GT 0>
<cfheader name="content-disposition" value="attachment; filename=#arguments.fileName#.#config.extension#" />
<cfelse>
<cfheader name="content-disposition" value="attachment; filename=#config.temp_name#.#config.extension#" />
</cfif>
<cfcontent type="application/msexcel" variable="#spreadsheetReadBinary(local.xls)#" reset="true" />