6

我有一个使用回形针处理照片字段的用户模型的基本 Rails 应用程序测试。我创建了能够创建/编辑用户的视图,并且照片上传运行良好。

<h1>Editing user</h1>

<% form_for :user, @user, :url => user_path(@user), :html => { :method => "put", :multipart => true } do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :first_name %><br />
    <%= f.text_field :first_name %>
  </p>
  <p>
    <%= f.label :last_name %><br />
    <%= f.text_field :last_name %>
  </p>
  <p>
    <%= f.label :file %><br />
    <%= f.file_field :file %>
  </p>

  <p>
    <%= f.label :photo %><br />
    <%= f.file_field :photo %>
  <p>
    <%= f.submit 'Update' %>
  </p>

<% end %>

<%= link_to 'Show', @user %> |
<%= link_to 'Back', users_path %>

然后,我想将 SWFUpload 集成到我的应用程序中。我尝试按照本教程运行测试项目,但没有成功:浏览按钮没有打开文件对话框,并且抛出了关于 selectFiles() 方法的错误 #2176。

首先,问题在于 Flash v.10 与项目中包含的旧版本 SWFUpload (2.1.0) 不兼容:现在不推荐使用 selectFiles()。所以我尝试升级到 SWFUpload v. 2.2.0,它现在使用 button_placeholder_id 设置,但我无法获得任何示例。

所以我对如何使用 SWFUpload 初始化以及在我的表单中使用它有点迷茫,这样我就可以上传和保存照片。有什么帮助吗?

4

3 回答 3

1

这是一篇不错的文章

于 2009-10-23T21:39:50.187 回答
1

为了将照片文件字段 id 传递给 SWFUpload,您的字段的 id 将是 user_photo(来自 <input type='file' id='user_photo'.../>),所以初始化 swfupload

var swfupload = new SWFUpload({button_placeholder_id:'user_photo' ... });

它将用 swf 上传器替换文件字段。

请记住,默认情况下,文件将作为“Filedata”参数上传。从技术上讲,您可以将其更改为“用户 [照片]”,但显然这在 Linux 上不起作用,因此您可能需要在服务器端进行一些调整才能将其移动到正确的位置。

于 2009-10-24T10:01:47.520 回答
1

您可以尝试使用easy-swf-upload 插件

您只需要插入一个助手并可能采用 css

于 2009-10-21T15:06:04.243 回答