我正在尝试使用rails和回形针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