首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用carrierwave上传文件

使用carrierwave上传文件
EN

Stack Overflow用户
提问于 2013-07-03 00:32:01
回答 1查看 1.6K关注 0票数 0

我正在尝试使用Rails,Mongoid和Carrierwave上传文件。当我单击submit时,POST请求中的"image“的值是{url : null}。当我使用记录器在我的控制器中查看create操作中的"image“值时,该值为"C:\\fakepath\\tree.png",所以我不能直接使用File.open保存它来获取文件,因为这不是真正的路径。这是我第一次用上传工具写表单,所以我不太确定我在做什么。

这是我上传图片的表单:

代码语言:javascript
复制
<h1>New Post</h1>
<form id="new-post" name="post" enctype="multipart/form-data">
  <div class="field">
    <label for="name"> Name</label><br />
    <input type="text" name="name" id="name" value="<%= name %>" >
  </div>
  <div class="field">
    <label for="image"> Image</label><br />
    <input type="file" name="image" id="image" value="<%= image %>" >
  </div>
  <div class="field">
    <label for="content"> Content</label><br />
    <textarea rows="4" cols="50" name="content" id="content" value="<%= content %>" ></textarea>
  </div>
  <div class="actions">
    <input type="submit" value="Create Post" />
  </div>
</form>

下面是我为支持carrierwave而添加的内容:

Gemfile:

代码语言:javascript
复制
gem "carrierwave"
gem "carrierwave-mongoid", :require => 'carrierwave/mongoid'

PostModel:

代码语言:javascript
复制
attr_accessible :name, :content, :image
mount_uploader :image, ImageUploader

ImageUploader:

代码语言:javascript
复制
class ImageUploader < CarrierWave::Uploader::Base
  storage :file
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
EN

回答 1

Stack Overflow用户

发布于 2013-07-03 00:37:00

试试这个指南,开始吧:http://www.tutorialspoint.com/ruby-on-rails/rails-file-uploading.htm

fakepath的事情很好,你真的不关心路径本身,你关心的是上传的字节数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17430937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档