我試圖在將文件流式傳輸到客戶端之前設置Content-Length標頭。我與它設置:Sinatra文件蒸發的內容長度
response.headers['Content-Length'] = "12341234"
,然後我做一些事情,如:
steam do |out|
file_chunks.each do |chunk|
out << chunk
end
out.close
end
然而,當我試圖倒在瀏覽器中的Content-Length頭是空白的文件。有誰知道這是Sinatra問題還是Passenger/Apache問題?
我假設發生了什麼事是這段代碼之間的某一層,當響應實際發送時,它發現它首先發送標題,數據塊爲空,因此即使設置了內容長度爲0它明確。
是否有另一種方式告訴瀏覽器我發送的文件有多大?
編輯
看起來是一個乘客的問題不是一個西納特拉問題。如果我使用瘦命令運行服務器,Content-Length會正確傳遞。我猜這個問題改變了,如果它已經設置,不改變Content-Length?
你不應該用'請求[ '內容長度']'來設置它。迴應是你從請求中得到的迴應。 – BlackHatSamurai