2011-04-19 77 views

回答

2

使用open-uri,它可以让你从一个网址为已读尽管它是一个文件。请注意,“b”对于打开模式来说是非常重要的,特别是在Windows中运行时。

require 'open-uri' 
open("#{RAILS_ROOT}/tmp/export/albums/#{album_name}/#{photo_name}", 'wb') do |dest| 
    open(URI.parse(photo['source']), 'rb') do |src| 
    dest.write(src.read) 
    end 
end 

注意,在写出之前,将整个文件读入内存。对于大文件,您可能需要读取和写入块。

+0

使用'Rails.root'会更好,因为'RAILS_ROOT'会在更新版本的Rails中产生警告。还要确保你保存文件的路径存在,否则会引发异常。 – tadman 2011-04-19 20:51:37

相关问题