我正在尝试使用carrierwave,它正在上传文件,但我希望我的mp4文件位于public / uploads目录中。它将它添加到那里,但将其放入tmp / some-weird-id文件夹中。我想在公共/上传中使用mp4文件。这可能吗?如果是这样,怎么样?我已经尝试编辑cache_dir,但它仍然添加了奇怪的id文件夹。
以下是目前的代码:
class VideoUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
# include CarrierWave::MiniMagick
# Choose what kind of storage to use for this uploader:
storage :file
# storage :fog
def store_dir
"uploads" # This saves to Rails_Root/public/uploads
end
def move_to_cache
true
end
def move_to_store
true
end
这是控制器
def create
@file = params["video"][:file].original_filename
@video = Video.new({ :upload_file_name => @file, :user_id => current_user.id})
@video.file = params["video"][:file]
respond_to do |format|
if @video.save!
format.json { render json: {files: [@video.id]}, status: :created }
end
end
end
答案 0 :(得分:0)
您可以指示Carrierwave 将文件移动到您的存储目录,而不是通过覆盖上传器中的move_to_cache
和move_to_store
方法来复制它。
class MyUploader < CarrierWave::Uploader::Base
def move_to_cache
true
end
def move_to_store
true
end
end
中了解相关信息