0

我正在尝试使用以下块在 ruby​​ 中发布 PDF 的(原始)内容

require 'pdf/reader'
require 'curb'

reader = PDF::Reader.new('folder/file.pdf')
raw_string = ''
reader.pages.each do |page|
  raw_string = raw_string + page.raw_content.to_s
end
c = Curl::Easy.new('http://0.0.0.0:4567/pdf_upload')
c.http_post(Curl::PostField.content('param1', 'value1'),Curl::PostField.content('param2', 'value2'), c.http_post(Curl::PostField.content('body', raw_string)))

API 实现内部params[:body]似乎一直是空的(尽管 puts raw_string确认变量具有所有值。

另外,有没有更好的方法来发布 pdf 内容?

4

1 回答 1

0

关于你如何建造raw_string......

代替:

reader.pages.each do |page|
  raw_string = raw_string + page.raw_content.to_s
end

您应该能够执行以下操作之一:

raw_string = reader.pages.map(&:raw_content).join
raw_string = reader.pages.map{ |p| p.raw_content.to_s }.join

为了清晰和可读性,我还建议您将最后一行写成多行:

c.http_post(
  Curl::PostField.content('param1', 'value1'),
  Curl::PostField.content('param2', 'value2'), 
  c.http_post(Curl::PostField.content('body', raw_string))
)
于 2014-12-22T19:04:41.960 回答