railsとpaperclip 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