如何獲取回形針附件的每種樣式的文件大小?回形針附件文件大小
@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