文件上传功能详情

时间:2015-08-10 02:12:52

标签: ruby-on-rails html5 backbone.js

所以我会尝试尽可能具体。

我正在建立一个网站,我希望为用户实施上传,以便在评论中将图像上传为头像或屏幕截图。我还是一个初学者(编写了7周),我正在使用BackboneJS和Ruby on Rails编写这个网站。我想我只需要HTML模板中的表单和输入标签,允许用户从本地系统中选择一张图片到我的应用程序。我的问题是,一旦我解析数据(假设我解析它,因为我已经将所有数据解析为JSON)。

它去哪儿了?

我已经读过,将图像存储到我的postgreSQL数据库中是不好的。

但它会在后端还有什么地方?

我的应用程序是否只是下载他们上传的内容并将其保存在分配给每个特定用户的文件夹中?

如果有人能够在一个非常基本的层面上解释它,我将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

当我学习如何在rails上进行文件上传时,这对我很有帮助 carrierwave-file-uploads

您需要将这2个宝石添加到您的宝石文件

gem "rmagick"
gem "carrierwave"

创建一个上传器 应用/上传/ image_uploader.rb

class ImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::RMagick

  storage :file

  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

  version :thumb do
    process :resize_to_limit => [200, 200]
  end
end

最后但并非最不重要的是你需要你的表格

<%= form_for @painting, :html => {:multipart => true} do |f| %>
  <%= f.error_messages %>
  <%= f.hidden_field :gallery_id %>
  <p>
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </p>
  <p>
    <%= f.file_field :image %>
  </p>
  <p>
    <%= f.label :remote_image_url, "or image URL" %><br />
    <%= f.text_field :remote_image_url %>
  </p>
  <p><%= f.submit %></p>
<% end %>

我希望这会有所帮助。 继续编码。你在7周内做得很好