2010-11-17 36 views
4

如何通過控制檯或rake任務使用回形針上傳文件?我有點不確定這是如何在沒有窗體的情況下工作的。有沒有人處理過這個問題?Rails,回形針,從rake任務上傳照片?


更新

所以我發現這一點:

image = Image.new(:storage => File.open('/path/to/my/image.png', rb)) 

但我想這使我的問題有點簡單,說我的照片實際上是在線(在不同域)和我想用回形針將其轉換並上傳到我的服務器。有沒有可能以某種方式給File.open一個網址?

回答

6

給這個鏡頭。

require 'open-uri' 
image = Image.new(:storage => open("http://path.to.the/image.png")) 

工作時,我在我的終端嘗試它,我只是做:

require 'open-uri' 
image = open("http://i.stack.imgur.com/qjKuQ.jpg") 

這就造成:

=> #<File:/var/folders/Zo/ZoJYH-A6Eg8GQ3pV0fIyhU+++TU/-Tmp-/open-uri20101117-5813-1h64t5k> 
+0

Hugo就在這裏,您只需要將File對象傳遞給模型上的訪問器設置即可。 – 2010-11-17 21:55:32

+0

瑞恩,我認爲我遇到的問題是我使用S3作爲我的存儲。,任何想法? – 2010-11-18 00:42:09

+0

芬蘭語此方法解決了我從其他平臺移動照片的問題!但還有一個問題。使用這種方法,回形針可以保存沒有擴展名的照片,因爲它可以從臨時文件中獲取。如何解決這個問題?謝謝! – Gediminas 2013-03-24 19:32:55

1

然而,保存文件爲「開放式uri12345sdf-1301fp 「。 (沒有擴展名)在數據庫中。我們如何將原始文件名保存在photo_file_name字段中。

1

這是一種破解我認爲,但我只是在我的遷移中複製了ActionDispatch :: Http :: UploadedFile.new對象的文件,並像這樣運行它。