Как вернуть файл cfdocument pdf и сервер пользователю в браузере? - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть функция, которая будет генерировать PDF-файл cfdocument.Затем я хотел бы вернуть документ и сервер в браузер.Вот пример функции, которая генерирует файл PDF.

<cftry>
    <cfdocument format="PDF" filename="file.pdf" overwrite="Yes">
        <table>
           <tr>
              <td>Test</td>
           </tr>
        </table>
    </cfdocument>

    <cfset local.fnResults = {file: //Here I'm not sure what I should return}>         

    <cfcatch type="any">
        <cfset local.fnResults = {status : 400, message : "Error! Something went wrong."}>
    </cfcatch>
</cftry>

<cfreturn fnResults>

Приведенная выше функция должна генерировать файл и возвращать PDF в структуре fnResults.Затем на serve.cfm у меня есть такая логика:

<cfset local.Results = genertePDF()>

<cfif structKeyExists(local.Results, "FILEPATH")>
        <cfheader name="content-disposition" value="attachment;filename=#local.Results["FILENAME"]#"/>

        <!---Add the file content to the output stream:--->
        <cfcontent file="#local.Results["FILEPATH"]#" type="application/octet-stream" reset="true"/>

        <!---Exit immediately after adding the file content to avoid corrupting it:--->
        <cfabort/>
    <cfif>

Вы можете игнорировать структуру РЕЗУЛЬТАТОВ, так как я не все изменил.Моя единственная проблема - выяснить, как вернуть содержимое cfdocument?Если кто-нибудь знает, как заставить это работать, пожалуйста, дайте мне знать.Спасибо.

1 Ответ

0 голосов
/ 22 января 2019

Изменение:

<cfheader name="content-disposition" value="attachment;filename=#local.Results["FILENAME"]#"/>

К:

<cfheader name="content-disposition" value="inline;filename=#local.Results["FILENAME"]#"/>

Ссылка

...