2014-07-08 23 views
1

存儲當我試圖通過圖表URL(https://graph.facebook.com)來獲取Facebook的圖像,回形針店avatar_image_name在數據庫中的「圖片」。代碼的例子:回形針不以正確的格式獲取圖像的URL

img = UserImages.new 
img.avatar = URI.parse('https://graph.facebook.com/666980153384194/picture?type=large') 
img.save 

MySQL查詢在控制檯日誌:

=> #<URI::HTTPS:0x00000009954490 URL:https://graph.facebook.com/666980153384194/picture?type=large> 
irb(main):009:0> img.save 
    (0.0ms) BEGIN 
    SQL (0.0ms) INSERT INTO `user_images` (`avatar_content_type`, `avatar_file_name`, `avatar_file_size`, `avatar_updated 
_at`, `created_at`, `updated_at`) VALUES ('image/jpeg', 'picture', 6157, '2014-07-08 13:55:53', '2014-07-08 13:56:02', ' 
2014-07-08 13:56:02') 
    (29.1ms) COMMIT 

正如你可以看到名爲「畫面」獲取保存圖像文件。但是,如果通過直接URL像抓取圖像:

https://scontent-a-lax.xx.fbcdn.net/hphotos-prn2/v/t1.0-9/10478546_662150043867205_2640371404472615909_n.jpg?oh=cb2fe9d421fef3d7d2220bb48a2a36e2&oe=5418E8FB 

取出的圖象存儲爲:

(0.0ms) BEGIN 
Command :: file -b --mime "C:/Users/Windows/AppData/Local/Temp/f1620d075c0642a77f7b98e532d8a8eb20140708-1040-1h5z4e6.jpg 
" 
    SQL (1.0ms) INSERT INTO `user_images` (`avatar_content_type`, `avatar_file_name`, `avatar_file_size`, `avatar_updated 
_at`, `created_at`, `updated_at`) VALUES ('image/jpeg', '10478546_662150043867205_2640371404472615909_n.jpg', 25862, '20 
14-07-08 14:02:45', '2014-07-08 14:02:49', '2014-07-08 14:02:49') 
    (34.1ms) COMMIT 
=> true 

任何建議(溶液),將不勝感激。

UserImages類的源:

class UserImages < ActiveRecord::Base 
    belongs_to :imageable ,polymorphic: true 
    has_attached_file :avatar, 
         :styles => { :medium => "300x300>", :thumb => "125x125>" }, 
         :path => ":rails_root/public/images/users/:id/:style/:hash.:extension", 
         :default_url => "/images/normal/missing.jpg", 
         :url => "/images/users/:id/:style/:hash.:extension", 
         :hash_secret => "EWRWerrew234UTY" 

    validates_attachment :avatar, :content_type => { :content_type => ["image/jpeg", "image/gif", "image/png"] }, 
             :size => { :in => 0..5.megabytes } 

    end 

回答

0

有兩種獲取網址沒問題....無論做工精細... 的區別僅僅是因爲曲別針從最後生成的文件名URL的... 所以在第一URL

https://graph.facebook.com/666980153384194/圖片?類型=大

而在第二個URL

https://scontent-a-lax.xx.fbcdn.net/hphotos-prn2/v/t1.0-9/10478546_662150043867205_2640371404472615909_n.jpg?哦= cb2fe9d421fef3d7d2220bb48a2a36e2 & OE = 5418E8FB

我加粗的是回形針使用生成的文件名的URL的一部分....而在這兩種情況下,你不應該真正困擾自己的文件名......既然你可以做任何操作,你要想到回形針。

而且可以確保該文件是通過檢查路徑public/images/users/:id(回形針路徑配置)

+0

得到它上傳。非常感謝您的澄清! :) – ProblemSlover

+0

是,圖像被指定的存儲路徑。文件的名稱有一個散列格式,但沒有文件擴展名:d8146a48c0f4fc3d916e57257c6270e91205ccbc 這讓有點困惑圖像是如何解決的:P – ProblemSlover

+0

是啊,如果回形針想不出會發生......如果文件中存在的延伸路徑,你可以打開它。然後,它會在回形針工作。 –