Ruby open-uri打开方法丢失文件扩展名打开的图像

前端之家收集整理的这篇文章主要介绍了Ruby open-uri打开方法丢失文件扩展名打开的图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 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

在操作期间暂时假脱机到磁盘,特别是网络操作是常见的.一旦文件内容已经累积起来,就可以将其传递给应用程序.读取阻塞,所以你的代码将停止在那里,直到文件被返回给你.然后你可以玩它.

原文链接:https://www.f2er.com/ruby/266320.html

猜你在找的Ruby相关文章