加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读