gpt4 book ai didi

ruby - Net::HTTP 获取 PDF 文件并用回形针保存

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

我会在网络服务器上下载 PDF 文件。我使用 Net::HTTP Ruby 类。

def open_file(url)
uri = URI.parse(url)

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri.path)
request.basic_auth(self.class.user, self.class.password)

http.request(request)
end

它有效,我检索了我的 PDF 文件,它是一个类似这样的字符串:%PDF-1.3\n%\...

我有一个返回结果的方法:

def file
result = open_file(self.file_url)
times = 0

if result.code == 404 && times <= 5
sleep(1)
times += 1
file
else
result.body
end
end

(这是一种递归方法,因为服务器上可能不再存在该文件)

但是当我用 Paperclip 保存这个文件时,我有一个错误:Paperclip::AdapterRegistry::NoHandlerError (No handler found for "%PDF-1.3\n% .../p>

我尝试使用 StringIO 操作文件...但没有成功:(。

有人有想法吗?

最佳答案

假设您获得的 PDF 对象没有问题(我不是 100% 确定它是),那么您可以这样做:

file = StringIO.new(attachment) #mimic a real upload file
file.class.class_eval { attr_accessor :original_filename, :content_type } #add attr's that paperclip needs
file.original_filename = "your_report.pdf"
file.content_type = "application/pdf"

然后用回形针保存文件。

(来自“Save a Prawn PDF as a Paperclip attachment?”)

关于ruby - Net::HTTP 获取 PDF 文件并用回形针保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20495844/

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