📜  允许 xlsx 和 csv 文件 rails 文件字段接受值 - Html (1)

📅  最后修改于: 2023-12-03 15:22:31.452000             🧑  作者: Mango

如何在 Rails 中允许文件类型为 xlsx 和 csv 的文件上传

在 Rails 中,我们可以使用 Active Storage 来上传文件。然而,默认情况下,Active Storage 只支持常见的文件类型,如图片和视频。

如果你想允许用户上传 xlsx 或 csv 文件,你需要对 Active Storage 进行一些配置。

配置 Active Storage

首先,你需要打开你的 config/application.rb 文件,并将以下代码添加到该文件的 class Application 中:

config.active_storage.content_types_allowed_above = %w(application/vnd.ms-excel text/csv)

上述代码将添加两种 MIME 类型,即 application/vnd.ms-exceltext/csv。这样,Active Storage 就会接受上传这两种类型的文件。

更新表单视图

接下来,你需要更新你的表单视图,以允许用户上传 xlsx 或 csv 文件。你可以使用 accept 属性来实现该功能。更新表单视图代码如下:

<%= form_with(model: @model, local: true) do |form| %>
  <%= form.file_field :file, accept: ".xlsx,.csv" %>
  <%= form.submit %>
<% end %>

accept 属性值为 ".xlsx,.csv"(注意两个后缀之间没有空格),这将告诉浏览器只允许上传 xlsx 和 csv 文件。

代码片段
```ruby
config.active_storage.content_types_allowed_above = %w(application/vnd.ms-excel text/csv)
<%= form_with(model: @model, local: true) do |form| %>
  <%= form.file_field :file, accept: ".xlsx,.csv" %>
  <%= form.submit %>
<% end %>