首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails回形针,未分配编辑表单file_field

问Rails回形针,未分配编辑表单file_field
EN

Stack Overflow用户
提问于 2012-12-12 00:22:24
回答 1查看 2.6K关注 0票数 8

在我的模型中,我使用回形针将头像附加到我的用户上:

代码语言:javascript
复制
has_attached_file :avatar, 
    :styles => {square_tiny: '50x50#', square_small: '100x100#', square: '200x200#'}

我有一张表格

代码语言:javascript
复制
<%= form_for(@user_profile, 
        :url => { :controller => :user_profiles, :action => :update_general_info, :id => @user_profile.id }, 
            :html => {  :multipart => true, 
                :class=> "form-horizontal" }) do |f| %>

            <div class="control-group">
              <%= f.label :avatar, :class => "control-label" %>
                <div class="controls">
                    <%= f.file_field :avatar  %>
                </div>
            </div>

....

<% end %>

上传工作很完美,但是我回来编辑我的用户,文件字段显示‘没有选择文件’。由于我正在验证那个头像的存在,所以每次用户编辑他的详细信息时,他都必须再次上传他的头像……

我该如何解决这个问题呢?

我以为:multipart => true能帮上忙,但它没有。

EN

回答 1

Stack Overflow用户

发布于 2013-03-28 20:59:25

对于页面来说,绝对没有好的方法来设置文件字段的值,这是出于安全原因。

如果浏览器允许页面或JS脚本为文件字段设置值,这将允许恶意页面使用某些系统或密码预置文件字段的值。这将是一个巨大的安全漏洞。

在这种情况下,我所做的是将已经保存的文件显示为用户可以单击下载的链接。然后,您可以提供一些小的AJAX链接来删除(通过AJAX调用删除文件,并用新的文件输入替换链接)和替换(用文件输入替换链接)。

最后一个选项是使用AJAX上传文件。如果您使用AJAX上传文件,您将POST到一个隐藏的框架,这样文件输入将保持其选定的值。无论哪种方式,请记住,对文件字段值的任何更改都必须由用户发起。

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

https://stackoverflow.com/questions/13824156

复制
相关文章

相似问题

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