Mar*_*ark 8 file-upload ruby-on-rails-3 carrierwave
我正在使用CarrierWave在Rails 3.1中上传文件,我正在寻找一种节省服务器空间的方法.许多上传的照片都超过了20MB,所以在将它们处理成1024 x 1024后,我想删除原始照片.在上传器类中有没有简单的方法呢?
谢谢, - 马克
Jep*_*zen 23
我曾经有两个版本,意识到我不需要原版
所以没有
version :thumb do
process :resize_to_limit => [50, 50]
end
version :normal do
process :resize_to_limit => [300,300]
end
Run Code Online (Sandbox Code Playgroud)
我删除了:正常并添加了这个
process :resize_to_limit => [300, 300]
Run Code Online (Sandbox Code Playgroud)
现在原件以我需要的尺寸保存,我在服务器上没有第三个未使用的图像
大家!选定的解决方案对我不起作用.我的解决方案
after :store, :remove_original_file
def remove_original_file(p)
if self.version_name.nil?
self.file.delete if self.file.exists?
end
end
Run Code Online (Sandbox Code Playgroud)
您可以在模型中定义 after_save 回调并删除照片。
我不知道你的型号,但如果你自定义它,类似这样的东西可能会起作用:
class User << ActiveRecord::Base
after_create :convert_file
after_create :delete_original_file
def convert_file
# do the things you have to do
end
def delete_original_file
File.delete self.original_file_path if File.exists? self.original_file_path
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5698 次 |
| 最近记录: |