2

Net::HTTP:POST::Multiport を実行して、テキストをファイル形式で API に送信しようとしています。

データベースからデータを取得しますが、物理ファイルを作成するのではなく、データを使用してオンザフライでファイルを作成し、API に送信したいと考えています。今、私は持っています

request = Net::HTTP::Post::Multipart.new("my/path", 
                                           { "file" => UploadIO.new(file, "text/plain", file.path), 
                                             "merge" => false, 
                                             "ignore_missing" => false, 
                                             "label" => "", 
                                             "low_priority" => false })

ここでfileは、ディスクから読み取ったファイル オブジェクト、またはhttp://rubydoc.info/gems/multipart-post/1.1.0/UploadIO#initialize-instance_methodIOに従って、JSON を作成する方法を考えてください。ファイルを作成して書き込む必要なしに、一連の文字列から IO を取得できますか?

また、どのようにこれを行うことができますhttmultipartyか?

4

1 に答える 1

1

はい、「httmultiparty」で実行でき
ますコントローラーメソッドに-を追加するだけです-

class SomeController <  ApplicationController
   def send_file
       response = Foo.post('/', :query => {
                  :file => File.new('abc.txt') # Generate your file here
       })
       # here Foo is class_name which is present in model/foo.rb
       response.code # it give response code success or failure.
   end
end

モデルでは、任意のファイルを作成し、foo.rb を作成して、次のコードを追加します -

require 'httmultiparty'
class Foo
   include HTTMultiParty
   base_uri 'my/path' #url where to send file 
end  

を実行するだけで、パス上のファイルを取得できますparams[:file]。これはあなたを助けると思います。

于 2012-12-05T11:26:42.710 に答える