Ruby open-uri打开方法丢失文件扩展名打开的图像
发布时间:2020-12-16 22:12:59 所属栏目:百科 来源:网络整理
导读:我正在使用 ruby 1.9.2以及Rails 3.1.4和Paperclip 2.4.5. 我的问题是尝试从URI保存回形针附件丢失文件扩展名,并保存文件而不会导致需要扩展的fancybox等问题. 一些示例代码: uri = "http://featherfiles.aviary.com/2012-06-13/bbe5f0de1/0c5a672b88ea47ec
我正在使用
ruby 1.9.2以及Rails 3.1.4和Paperclip 2.4.5.
我的问题是尝试从URI保存回形针附件丢失文件扩展名,并保存文件而不会导致需要扩展的fancybox等问题. 一些示例代码: uri = "http://featherfiles.aviary.com/2012-06-13/bbe5f0de1/0c5a672b88ea47ecb4631ac173e27430.png" open(uri) #=> #<File:/var/folders/zc/d69gxhzx10x_bvjrkqgyjgxr0000gn/T/open-uri20120613-27204-i6cldv> 因为临时文件没有扩展名的剪贴画是保存文件没有导致问题. 有人遇到这个问题吗?我已经看到关于使用回形针存储来自URI的图像的多个答案,但是似乎没有解决我们正在运行的同样的问题 解决方法
不要使用临时文件!它作为一个占位符,因为该文件是从端口读取的,应被视为OpenURI的私有资源.相反,使用open(url).read并通过保存来处理结果内容.
做一些像: require 'uri' require 'open-uri' url = 'http://www.iana.org/domains/example/index.html' filename = File.basename(URI.parse(url).path) File.open(filename,'wb') do |fo| fo.write(open(url).read) end 在操作期间暂时假脱机到磁盘,特别是网络操作是常见的.一旦文件的内容已经累积起来,就可以将其传递给应用程序.读取阻塞,所以你的代码将停止在那里,直到文件被返回给你.然后你可以玩它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |