2010-05-23 38 views
2

我需要包含一個圖片/ PNG文件的內容長度上傳到web服務。如何計算ruby中文件上傳的內容長度?

但是,如何計算包含在標題中的內容長度?

謝謝。

我使用rest-client提交它。

對上傳的Web服務是Postful:和文檔一直不清楚:http://www.postful.com/developer/guide#uploading_attachments

因爲我寫的有效載荷和報頭,好像我需要輸入該值。

我也期待在postalmethods它說,內容長度是用戶輸入:

http://postalmethods.com/method/2009-02-26/UploadFile

這些文件本身是.PNG。我將使用Paperclip將它們附加到模型中,因此將會有一個文件路徑。

我需要的內容長度後使用回形針被存儲爲附件的文件,所以具體的代碼產生的問題是:

File.size(@postalcard.postalimage.url) 

回答

1

嗯,你知道你是如何閱讀和張貼數據,大概 - 所以你知道你發送了多少數據。這是內容的長度。如果你只是直接以二進制形式發送它作爲帖子的主體,那只是文件的長度。如果你使用base-64編碼,那麼內容長度將是((文件長度+2)/ 3)* 4.如果它是在SOAP信封等中,你需要考慮到這一點。

這樣做對於複雜情況的一種方法是首先在內存中構建整個帖子主體,設置內容長度,然後直接從內存中複製到帖子主體。

+0

我該如何得到那個大小......我應該只使用File.size? 你是什麼意思,如果它要一個SOAP信封 - 我想這就是我想弄清楚的文檔(我添加到我的問題)的web服務不清楚.... – Angela 2010-05-23 17:17:04

+0

@Angela:看起來你沒有信封或任何類似的東西 - 只是內容。所以只需放大小的長度。 File.size聽起來像是正確的路要走;我不是紅寶石的人,所以我不知道。 – 2010-05-23 18:14:22

+0

好吧,希望這是正確的方式,令人困惑。 – Angela 2010-05-29 16:51:20

1

那麼,你可以使用File.size(filepath),但它不太可能會需要 - 大多數庫用於發出HTTP請求應該自動執行 - 您正在使用哪個庫? (或者,它是什麼樣的web服務?)

+0

嗯......也許它是自動完成的,我正在使用rest-client。 Web服務是Postful:並且文檔不清楚。 http://www.postful.com/developer/guide 我也在看郵政方法,它說內容長度是用戶輸入: http://www.postalmethods.com/method/2009- 02-26/UploadFile – Angela 2010-05-23 17:04:45

+0

就我所見,該方法文檔似乎沒有提及Content-length,只是基於base64格式的文件數據本身。你認爲哪裏說你需要提供長度? – Gareth 2010-05-23 23:10:12

+0

它在標題中說我需要提供的內容長度:( – Angela 2010-05-29 16:50:55