如何获取回形针附件的每种样式的文件大小?回形针附件文件大小
@user.attachment_file_size
似乎 不工作
@user.attachment(:style).size
给不相关的实际文件大小
如何获取回形针附件的每种样式的文件大小?回形针附件文件大小
@user.attachment_file_size
似乎 不工作
@user.attachment(:style).size
给不相关的实际文件大小
我没有找到如何获得文件大小对于给定的风格,除原来的之一。
如看到in the paperclip source code,@user.attachment.size
返回最初分配的文件大小。有没有办法得到它的特定风格。
一个解决办法是:
open(@user.attachment(:style)).size
但效率不高的。
把它做好,你应该加入您的附件表中的一些“自定义大小”场1次附件保存每个样式,你会填补...
您好皮埃里亚,可能不再是你的问题。但是我已经找到了一个解决方案,通过在上传到S3之前捕获每个样式的临时文件。 – Maxence 2017-12-08 12:47:05
用户的ID(例如) 用户有发现一些:照片
@user.last.photo_file_size
我得到零...不起作用 – 2013-02-12 19:47:48
https://github.com/thoughtbot/paperclip#usage – xdsemx 2013-02-13 06:23:23
你可以像“为WIDTHxHEIGHT字符串“里面的风格哈希,为给对象的风格,采用Paperclip::Style#geometry:
string = @user.attachment.styles[:size].geometry
比你可以分割字符串有高度或宽度:
width = string.split("x")[0]
height = string.split("x")[1]
看起来实际上是可能的
只需为每个样式应用临时文件并应用尺寸方法。
假设你有两种风格large
和small
为您的附件名为image
和你在你的模型large_size
和small_size
创建了两个附加字段来保存这些值。
只是代码的下方位添加到模型:
before_create :assign_sizes
private
def assign_sizes
self.large_size = image.queued_for_write[:large].size.to_i
self.small_size = image.queued_for_write[:small].size.to_i
end
large_size
和small_size
将每种风格的文件大小popuated的字段。例如,在将文件发送到S3之前,这将完成。所以没有额外的查询来自S3的文件头。
最新版本的回形针不会给我file_size。不知道发生了什么。 – courtsimas 2013-05-13 15:45:36