我使用LiveCode社區服務器8.1.2的Windows Server 2016數據中心(運行Apache 2.4)「把二進制」,而不是LiveCode服務器上的二進制文件
我用下面的代碼放在命令只輸出文本
put header "content-disposition: attachment; filename=" & tFileName
put header "content-type: application/pdf"
put header "content-transfer-encoding: binary"
put url("binfile:" & "../resources/documents/" & tActualFileName into tBinaryData
put binary tBinaryData
當包含在瀏覽器調用的腳本中時,此代碼在瀏覽器窗口中以文本形式返回數據,而不是可下載的pdf文件。
幾個月前,我寫了這段代碼,它的工作,我今天回到它並沒有。
我已經檢查過兩次,我確定它是正確的,但我不知道還有什麼可以打破它。
我對 測試的Chrome 59在Windows 8.1專業版的Chrome 59在MacOS塞拉利昂10.12.5 Safari瀏覽器在iOS 10.3.2
任何幫助或指導將是最歡迎的。
編輯: 修正代碼,以從第4行刪除單詞「二進制」 - 這是產生其在的末端產生的文本輸出的誤差返回的結果 - 它沒有解決問題 - 在響應頭中仍然返回文本和「Content-Type:text/html」
編輯: 源的開頭有2個空行使用查看源代碼,Chrome上的Ctrl-U)
如果您可以從Chrome開發人員工具中的網絡查看器獲取實際的http響應並查看它發送了什麼,可能會有用。 – JeffUK
傑出點傑夫 - 我現在已經添加了網絡標題。在查看響應頭文件「Content-Type:text/html; charset = windows-1252」看起來很可疑。雖然我在代碼 –
中明確指定了「放置標題」內容類型:application/pdf「,並且沒有內容處置...隨機預感,您能否嘗試首先聲明內容類型?它應該不重要,但我必須總是把它放在第一位 – JeffUK