4

RubyGemCurbを使用してファイルダウンローダーを構築しようとしています。(この質問を見てください。)

zipファイルをダウンロードしようとしていますが、ファイルクラスを使用して実際にファイルを作成し、Finderでダブルクリックできるようにしています(OS Xを使用しています)。この「カールした」本文をzipファイルに変換するにはどうすればよいでしょうか。

require 'rubygems'
require 'curb'

class Download
  def start
    curl = Curl::Easy.new('http://wordpress.org/latest.zip')
    curl.perform
    curl.on_body {
      |d| f = File.new('test.zip', 'w') {|f| f.write d}
    }
  end
end

dl = Download.new
dl.start

エラーが発生せず、ファイルも見つかりません。私は違いのない絶対パスを試しました。

4

2 に答える 2

4

私はruby2.0を使用しています

私のコードは次のとおりです。

curl = Curl::Easy.new('http://somepage.cz/index.html')
curl.on_body do |d|
  f = File.open('output_file.html', 'w') {|f| f.write(d)}
end
curl.perform

私はこれなしでそれがうまくいかなかったに変更File.newしなければなりませんでした。File.open最後に移動curl.perfomすることは私を助けました。

于 2013-10-03T20:51:42.497 に答える
2

on_bodyを呼び出した後にイベントを追加しますperform。これにより、本文が転送されます。イベント宣言をperform呼び出しの前に移動すると、これは機能するはずです。

于 2011-03-21T20:34:24.080 に答える