我正在尝试使用以下块
在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内容吗?
答案 0 :(得分: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))
)