Просмотр и добавление PDF в базу данных одновременно

На данный момент я конвертирую данные на странице в PDF следующим образом:

<cfdocument format="PDF">
  <cfoutput>
    #pageContent#
  </cfoutput>
</cfdocument>

С #pageContent# переменной, созданной с использованием cfsavecontent

Это работает так, что у меня есть ссылка «Экспорт в PDF» внизу страницы, которая содержит переменную URL-адреса — эта ссылка ведет на ту же страницу, но переданная переменная сообщает ей о выводе PDF.

Мой вопрос: когда нажимается ссылка для создания PDF-файла, есть ли способ одновременно загрузить PDF-файл в базу данных?

Я знаю, что должен использовать cffile action="Upload" и подобные, но я не уверен, как сообщить странице, когда был открыт PDF-файл.

Надеюсь, это имеет смысл.


person Alias    schedule 01.03.2013    source источник
comment
Какую версию CF вы используете? несколько вещей приходят на ум. 1) Сохраните содержимое страницы в БД, а затем снова создайте PDF-файл позже при отображении. 2) Вы можете cffile action=записать его в файловую систему или память, чтобы сгенерировать файл, а затем прочитать его обратно в переменную, чтобы записать в БД. или 3) cffile action = записать файл в файловую систему, получить URL-адрес и путь и записать его в БД, чтобы вместо сохранения файла в БД вы просто сохраняли путь и сохраняли файл в файле система.   -  person steve    schedule 01.03.2013


Ответы (1)


Вы можете использовать атрибут filename для cfdocument, чтобы сохранить файл непосредственно на сервере в любом месте по вашему выбору. CFdocument Docs. Вы также можете изучить использование CFPDF

Имя файла – Необязательно – Путь к файлу, который будет содержать выходные данные PDF или FlashPaper. Если вы опустите атрибут имени файла, ColdFusion отобразит вывод в браузере.

<cfdocument filename = "c:/~" ...> <!--- filename attribute to save to server --->
   #pageContent#
</cfdocument>

<cfquery ...>
    <!--- sql --->
</cfquery>

<!--- once your document is saved and database updated--->
<cflocation url = "[your saved file].pdf"...>
<!--- or as Peter Suggested --->
<cfcontent type="application/pdf" file="[your saved file].pdf">
person Travis    schedule 01.03.2013
comment
Дважды конвертировать в PDF — пустая трата ресурсов и времени — либо выполните cflocation, либо cfcontent с атрибутом файла. - person Peter Boughton; 01.03.2013
comment
Я согласен, я думал о том, чтобы взять второй cfdocument и просто предложить решение cflocation. думаю, я сделаю это. - person Travis; 01.03.2013
comment
После того, как вы записали файл, вы можете использовать cfthread для запроса на вставку, чтобы пользователю не приходилось ждать этой части. - person Dan Bracuk; 01.03.2013