如何计算ruby中文件上传的内容长度?

时间:2010-05-23 07:00:49

标签: ruby paperclip content-length

我需要将上传中发布的图片/ png文件的内容长度包含在网络服务中。

但是如何计算要包含在标题中的内容长度?

感谢。

我使用rest-client提交它。

上传的网络服务是Postful:文档不清楚:http://www.postful.com/developer/guide#uploading_attachments

因为我正在编写有效负载和头文件,所以我需要输入该值。

我也在研究postalmethods,它说内容长度是用户输入:

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

文件本身是.PNG。我将使用Paperclip将它们附加到模型,因此将有一个文件路径。

我需要发布内容长度的文件使用paperclip存储为附件,因此产生问题的具体代码是:

File.size(@postalcard.postalimage.url)

2 个答案:

答案 0 :(得分:1)

嗯,你知道你是如何阅读和发布数据的 - 大概是 - 所以你知道你要发送多少数据。这是内容长度。如果你只是直接以二进制形式发送它作为帖子的主体,它只是文件的长度。如果你是base-64编码,那么内容长度将是((文件长度+ 2)/ 3)* 4.如果它在SOAP信封等中,你需要考虑到这一点。 / p>

在复杂情况下执行此操作的一种方法是首先在内存中构建整个帖子主体,设置内容长度,然后直接从内存中复制到帖子主体。

答案 1 :(得分:1)

好吧,您可以使用File.size(filepath),但您不太可能需要 - 大多数用于发出HTTP请求的库应该自动执行 - 您正在使用哪个库? (或者,它是什么类型的Web服务?)