控制器
保存对象
如何使用此控制器将图像插入数据库中的任何文件夹和图像URL存储中
BEGIN
DELETE FROM mv_log_replica;
INSERT INTO mv_log_replica
(
pk_col,
col1,
col2)
SELECT
pk_col,
col1,
col2
FROM mlog$_my_tab;
/* Call externall process and pass the data */
/* Here instead of mlog$_my_tab use the mv_log_replica table */
DELETE FROM mlog$_my_tab a
WHERE EXISTS (SELECT 1 FROM mv_log_replica b WHERE a.pk_col = b.pk_col);
COMMIT;
END;
def create_json
答案 0 :(得分:1)
User(Model) mount_uploader :userImage, AvatarUploader
UsersController -> @user = User.new(user_params)
if @user.save
redirect_to(:action => 'show', id: User.last.id)
else
render :json => data_hash2, :content_type => 'application/json'
end
class AvatarUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def extension_white_list
%w(jpg jpeg gif png)
end end
如果您使用Web服务
<form action="http://ruby/controllername/create" lass="new_user" id="new_user" enctype="multipart/form-data" accept-charset="UTF-8" method="post">
答案 1 :(得分:0)
查看以下将文件上传到app / assets / images / people_profile_images文件夹的方法
首先上传图片如下:
@user =User.new(user_params)
#this will create user form paramaters given
uploaded_file = params[:user][:photo]
#this will add uploaded image or file in uplaoded_fie
if (uploaded_file)
File.open(Rails.root.join('app/assets', 'images/people_profile_images', uploaded_file.original_filename), 'wb') do |file|
file.write(uploaded_file.read)
@user.photo = "/assets/people_profile_images/"+uploaded_file.original_filename
end
else
@user.photo = "/assets/people_profile_images/default_avatar.png"
end
然后保存用户
@user.save
答案 2 :(得分:0)
我不知道一种方法可以涵盖两者:图像上传,然后将数据库保存在数据库中。
你可以做其中一个:
1)使用名为paperclip的gem来帮助上传图像文件。
请参阅此链接:
https://github.com/thoughtbot/paperclip#ruby-and-rails
https://teamtreehouse.com/library/image-uploads-in-ruby-on-rails-41(paperclip,carrierwave和dragonfly)
我使用了回形针,它对我来说效果很好。
OR:
2)在您的filename.html.erb中将其作为附加字段包含在您的image_url
中使用此功能的一个警告是,这可以更改,并且您无法控制可能在您的网站上显示的图像。因此,image_url应来自信誉良好的CDN,或至少来自信誉良好的用户上传到您的网站。
答案 3 :(得分:0)
在模型中创建列url:string。将其添加为表单中的隐藏字段。使用.js
将其值设置为与remote_url相同var urladdy = input.remoteurl.val()
input.url.val(urladdy)
这将使用载波上传图像,并将其URL保存为字符串。