gpt4 book ai didi

ruby open-uri打开方法丢失文件扩展名打开图片

转载 作者:数据小太阳 更新时间:2023-10-29 06:39:41 26 4
gpt4 key购买 nike

我正在使用 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 的私有(private)资源。相反,请使用 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

在操作期间临时假脱机到磁盘是很常见的,尤其是网络操作。积累文件内容后,即可将其传递给应用程序。 read 是阻塞的,因此您的代码将停在那里,直到文件返回给您。然后你就可以玩了。

关于ruby open-uri打开方法丢失文件扩展名打开图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11015858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com