gpt4 book ai didi

forms - Rails 回形针,未分配编辑表单 file_field

转载 作者:行者123 更新时间:2023-12-03 21:42:03 26 4
gpt4 key购买 nike

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

has_attached_file :avatar, 
:styles => {square_tiny: '50x50#', square_small: '100x100#', square: '200x200#'}

我有一个表格
<%= 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会有所帮助,但没有。

最佳答案

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

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

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

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

关于forms - Rails 回形针,未分配编辑表单 file_field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13824156/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com