【发布时间】:2014-01-15 07:38:48
【问题描述】:
我正在使用 Rails 4。我想上传多个 doc、doc.x、pdf 等类型的文件,但不上传任何图像文件。我实现了'jquery-fileupload-rails' gem。但是在上传时显示“内部服务器错误”。
你能帮我解决这个问题吗?或者有没有其他方法可以上传上述文件类型的多个文件?
【问题讨论】:
标签: javascript jquery ruby-on-rails
我正在使用 Rails 4。我想上传多个 doc、doc.x、pdf 等类型的文件,但不上传任何图像文件。我实现了'jquery-fileupload-rails' gem。但是在上传时显示“内部服务器错误”。
你能帮我解决这个问题吗?或者有没有其他方法可以上传上述文件类型的多个文件?
【问题讨论】:
标签: javascript jquery ruby-on-rails
您可以使用 rails 中的 gem Papaerclip 来上传任何类型的图像和文件。
【讨论】:
正如其他回复所提到的,您将需要使用附件处理 gem,例如 Paperclip 或 Carrierwave
您遇到的问题是,虽然 JQuery upload gem 正在向您的服务器发送文件,但 Rails 不知道如何处理您发送的文件,因此您会看到 500 错误
回形针
我们喜欢回形针 - 它非常适合将任何附件上传到您的服务器
使用方法如下:
#GemFile
gem "paperclip", "~> 3.5.2"
#app/models/attachment.rb
Class Attachment < ActiveRecord::Base
has_attached_file :attachment
end
#db/migrate
def change
create_table :attachments do |t|
t.attachment :attachment
t.timestamps
end
end
#app/controllers/attachments_controller.rb
def new
@attachment = Attachment.new
end
def create
@attachment = Attachment.new(attachment_params)
@attachment.save
end
private
def attachment_params
params.require(:attachment).permit(:attachment)
end
#app/views/attachments/new.html.erb
<%= form_for @attachment, {multipart: true} do |f| %>
<%= f.file_field :attachment %>
<%= f.submit %>
<% end %>
希望这有帮助吗?
【讨论】: