ColdFusion позволяет пользователю загрузить файл CSV - PullRequest
2 голосов
/ 20 февраля 2020

Я пытаюсь разрешить пользователю загружать файл CSV из приложения. Я много гуглил это, и, как и в случае почти любой проблемы с простудой, я не могу найти много. Вот что я пытаюсь:

<cfset yourFileName="\\10.21.2.187\devintranet\WebSite\Audit_Web\AuditWeb\temp\file.csv">
<cffile action="read" file="#yourFileName#" variable="myFile">

<cfheader name="content-disposition" value="attachment; filename=#listLast(myFile, "\")# />
<cfcontent type="application/msexcel" variable="#myFile#" reset="true" />

Это правильный путь к файлу:

temp/file.csv

и это имя файла:

Сейчас я получаю ошибка: 403 запрещено. Я понятия не имею, что не так и что правильно в этом. Я просто использую код, который нашел в Интернете. Любой совет будет принята с благодарностью.

1 Ответ

4 голосов
/ 20 февраля 2020

Определите, какой файл вы хотите загрузить:

<cfset yourFileName="\\10.21.2.187\devintranet\WebSite\Audit_Web\AuditWeb\temp\file.csv">

Считайте файл в переменную CF:

<cffile action="read" file="#yourFileName#" variable="myFile">

Отправьте файл в браузер, используя правильный MIME-тип, и имя файла:

<cfheader name="content-disposition" value="attachment; filename=#listLast(myFile, '\')#" />
<cfcontent type="application/msexcel" variable="#myFile#" reset="true" />

Тогда нет необходимости в <cflocation>, запрос закончится, как только файл будет передан в браузер.

Обновление: Согласно CFDocs , text/csv недопустимо type. должен разрешать любой правильный тип пантомимы, по-видимому, нет. Проверьте эту ссылку на допустимые значения для type.

Обновление 2: text/csv было в порядке. Атрибут value cfheader был закрыт неправильно. Пришлось изменить listLast() на использование одинарных кавычек и добавить закрывающую двойную кавычку.

...