0
我想知道如何獲取已保存到tmp文件夾的文件的大小。我使用carrierwave上傳我的圖片,如果驗證失敗的圖像的縮略圖顯示在表格在tmp文件夾中獲取圖像的大小
<% if build.object.image? %>
<%= image_tag build.object.image_url :small_animal_image %>
<%= build.hidden_field :image_cache %>
<% end %>
中從我讀這是正常的行爲。
我想獲得上傳的原始圖像的文件大小,但使用尺寸方法我只得到一個0返回
def example_method
image = params[:animal][:animal_images_attributes]
image.each do |k,v|
img_cache = v["image_cache"]
img_cache_size = img_cache.size
img = v["image"]
ap(img_cache)
ap(img)
ap(img_cache_size)
end
end
上述的在控制檯的輸出是
"0"
""
#<ActionDispatch::Http::UploadedFile:0x00000002fe40c8 @tempfile=#<Tempfile:/tmp/RackMultipart20140926-3003-1rfzkcq>, @original_filename="cat.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"animal[animal_images_attributes][0][image]\"; filename=\"cat.jpg\"\r\nContent-Type: image/jpeg\r\n">
0
這是散的樣子
animal_images_attributes"=>{"0"=>{"image_cache"=>"", "image"=>#<ActionDispatch::Http::UploadedFile:0x00000002fe40c8 @tempfile=#<Tempfile:/tmp/RackMultipart20140926-3003-1rfzkcq>, @original_filename="cat.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"animal[animal_images_attributes][0][image]\"; filename=\"cat.jpg\"\r\nContent-Type: image/jpeg\r\n">, "_destroy"=>"false"}}}
這甚至可能嗎?
任何指針讚賞
感謝
非常感謝,你會介意解釋第二部分我有關係嗎? – Richlewis 2014-09-26 12:25:20
以及如何將大小回作爲一個數字,而不是一個字符串?這樣我就可以對它進行比較 – Richlewis 2014-09-26 12:32:14
當然,確定實際使用imagemagick來提供有關圖像的信息,第二部分給出的是用於從標識顯示的信息中取出大小,如下所示:'cuscopanorama.jpg JPEG 1000x284 1000x284 + 0 + 0 8位DirectClass 66KB 0.000u 0:00.000'我們將從這裏獲得66KB。如果你只想要數字,試試用正則表達式方法:'「66KB」.scan(/ \ d + /)。join.to_i' – aelor 2014-09-26 12:44:50