2

railspaperclip gemを使用して zip ファイルをアップロードしようとしていますが、今のところ問題なく動作しています。しかし、ダウンロードが完了したら、このファイルを解凍して、内部のファイルを処理したいと思います。

ファイルを解凍しようとすると、問題が発生します。これは、ファイルが独自のパスにないためです。おそらくコピーされていますが、まだ完了していません。(そして、私はローカルホストにいますが、オンラインモードではさらに悪いです)。

したがって、ファイルのアップロードがいつ終了して解凍を開始するかを知るには、何らかのイベント/トリガーが必要です。その間、ある種のインターフェースを表示します。コントローラーのコードは次のとおりです。

# POST /components
# POST /components.json
def create
  @component = Component.new(params[:component])

  file = @component.folder

  Zip::ZipFile.open(file.path) do |zipfile|   # <-- The error comes here
    zipfile.each do |file|
      # do something with file
    end
  end


  respond_to do |format|
    if @component.save
      format.html { redirect_to @component, notice: 'Component was successfully created.' }
      format.json { render json: @component, status: :created, location: @component }
    else
      format.html { render action: "new" }
      format.json { render json: @component.errors, status: :unprocessable_entity }
    end
  end
end
4

2 に答える 2

0

私は自分でペーパークリップに苦労しているので、これが役立つかどうかはわかりませんが、ここに行きます.

save メソッドが呼び出されて完了した後、ファイルが保存されることを期待しています。save メソッドの後に、ファイルに対して追加のアクションを呼び出すことをお勧めします。

それが役に立てば幸い。

于 2013-01-07T17:49:22.940 に答える