在我的服务器上传文件会花费很多时间,是否可以上传文件并允许后台进程在验证后接管上传,这样它就不会减慢应用程序的速度,我该如何解决这个问题。
我的文件控制器就像这样
@file = File.new(params[:file])
respond_to do |format|
if @file.save
format.html { redirect_to @file, notice: 'file was successfully uploaded.' }
format.json { render json: @file, status: :created, location: @file }
format.js
else
format.html { render action: "new" }
format.json { render json: @file.errors, status: :unprocessable_entity }
format.js
end
end
end
文件模型是这样的
has_attached_file :file,
:path => ":rails_root/public/system/:attachment/:id/:style/:normalized_file_file_name",
:url => "/system/:attachment/:id/:style/:normalized_file_file_name"
validates_attachment_content_type :file, :content_type => ['audio/mp3', 'audio/mpeg', 'audio/mid', 'audio/x-wav']
Paperclip.interpolates :normalized_file_file_name do |attachment, style|
attachment.instance.normalized_file_file_name
end
def normalized_mp3_file_name
"#{self.mp3_file_name.gsub( /[^a-zA-Z0-9_\.]/, ' ')}"
end
我将在哪里使用延迟的工作宝石以及如何
答案 0 :(得分:0)
由于您的文件很大,因此上传肯定会花费很多时间。并且客户端的后台处理不可能发生,因为您需要一些可以上传文件的解决方案,而不需要花费太多时间或进行延迟响应。这个问题的答案可以帮助你在这里使用jquery上传你的文件,你也可以在客户端使用jquery进行验证(这不是一件好事,但是,是的,它将实现目的)。
我使用了这个 - http://blueimp.github.com/jQuery-File-Upload/用于我的项目。但是有更多适合您的愿望。如果您愿意,请查看它们 - http://creativefan.com/10-ajax-jquery-file-uploaders/
我希望它可以帮助您解决这个问题。