我有一個場景,在相同的形式,我有兩個上傳一個是圖像類型,而另一個是爲doc,excel和PDF等。我正在使用寶石'紙夾'的兩個。 首先我想知道如何自定義和配置回形針上傳這兩種類型, 秒我想限制兩個字段不要上傳其他類型。像圖片字段不應該接受其他內容類型,反之亦然。回形針文件上傳
回形針文件上傳
回答
您可以檢查
回形針上傳文件: - 1)在Gemfile中 包括在你的Gemfile寶石:
gem "paperclip", "~> 3.0"
如果你還在使用Rails的2.3.x版本,你應該做到這一點,而不是:
gem "paperclip", "~> 2.7"
2)在模型中
class User < ActiveRecord::Base
attr_accessible :img_avatar, :file_avatar
has_attached_file :img_avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
has_attached_file :file_avatar, :default_url => "/files/:style/missing.doc"
end
3)在您的遷移:
class AddAvatarColumnsToUsers < ActiveRecord::Migration
def self.up
add_attachment :users, :img_avatar
add_attachment :users, :file_avatar
end
def self.down
remove_attachment :users, :img_avatar
remove_attachment :users, :file_avatar
end
end
在你的編輯和新的觀點:
<%= form_for @user, :url => users_path, :html => { :multipart => true } do |form| %>
<%= form.file_field :img_avatar %>
<%= form.file_field :file_avatar %>
<% end %>
在你的控制器:
def create
@user = User.create(params[:user])
if ["jpg,"jpeg","gif", "png"].include? File.extname(params[:img_avatar])
@user.img_avatar = params[:img_avatar]
elsif ["doc","docx","pdf","xls","xlsx"].include?File.extname(params[:file_avatar])
@user.file_avatar = params[:file_avatar]
else
flash[:message] = "You are uploading wrong file" #render flash message
end
末
感謝
首先讓我知道如何上傳文件:) – Sami
好的請參閱回形針指南github.com/thoughtbot/paperclip上傳文件 –
請參閱我的文章,以兩種不同的方式上傳您的案例 –
爲了擴大所選擇的答案(&解決您引發ArgumentError)..
,你可以把所有的內容驗證模型中的下has_attached_file,像這樣:
validates_attachment_content_type :img_avatar, :content_type => /^image\/(png|jpeg)/
validates_attachment_content_type :file_avatar, :content_type =>['application/pdf']
這將允許附件類型爲img_avatar只能是PNG和JPEG(你可以添加其他擴展名),併爲file_avatar是,在這種情況下,PDF格式:)
- 1. 回形針多文件上傳
- 2. 回形針+ IE - 文件無法上傳
- 3. AngularJS/Rails回形針文件上傳
- 4. 回形針,大文件上傳和AWS
- 5. 回形針和文件上傳問題
- 6. 上傳文件和回形針
- 7. Rails 3.1,回形針,多文件上傳
- 8. 回形針上傳yml文件
- 9. 回形針文件無法上傳
- 10. 使用回形針上傳Ajax文件
- 11. Rails:用回形針上傳文件
- 12. 用回形針上傳多個文件
- 13. 慢回上傳回形針
- 14. 回形針上傳問題
- 15. 回形針視頻上傳
- 16. 回形針上傳錯誤
- 17. 回形針上傳404ing
- 18. 附上回形針的回形針上傳後損壞
- 19. 使用回形針上傳文件夾/多個文件(Rails gem)
- 20. 使用回形針更新文件而不上傳文件。
- 21. 用回形針上傳文件之前讀取文件行
- 22. Rails:使用回形針上傳音頻文件返回NoMethodError
- 23. 從郵件附件上傳通過回形針或Carrierwave文件
- 24. 文件上傳進度條與回形針上heroku
- 25. 性能問題通過回形針上傳大文本文件
- 26. 上傳回調之前的回形針
- 27. 通文件回形針上後端[軌]
- 28. Rails 3帶文件上傳/下載的回形針
- 29. Rails 4 Angularjs回形針如何上傳文件
- 30. Rails的回形針和:編輯頁面上傳新文件
定製papaer剪輯見https://github.com/thoughtbot/paperclip第二: - 在上傳時,您可以檢查擴展名,例如File.extname你的擴展,所以如果它是JPG,PNG,GIF,JPEG然後它將上傳其他明智它將上傳第一個 –
我有這在我的模型,但它不工作.. has_attached_file:文件 validates_attachment:document,content_type: 「application/pdf」 – Sami
ArgumentError(您必須通過:content_type或:不通過驗證程序): – Sami