嗨我目前正在爲用戶上傳圖片的應用程序。我正在嘗試添加Amazon S3以準備部署我的應用。我沒有收到任何錯誤,但在嘗試設置Amazon S3後,我的照片無法正常上傳。圖片正常上傳到亞馬遜上,而不是在我的數據庫中,所以當我上傳圖片並嘗試在視圖中循環顯示它們時,沒有任何內容顯示。任何人都可以幫我嗎?Rails:Amazon S3 + Paperclip不在數據庫中存儲任何東西?
正如阿里納斯,我使用回形針+ jQuery的文件上傳(多PIC上傳)+亞馬遜S3 +一個s3_direct_upload寶石(https://github.com/WayneHoover/s3_direct_upload)
配置路線(請注意,圖片嵌套在專輯和用戶),在這裏沒有問題
Pholder::Application.routes.draw do
resources :users do
resources :friends
resources :albums do
resources :photos
end
end
end
用戶/ show.html.erb(即是爲了顯示我的上傳圖片的頁面,沒有新的照片是顯示即使我上傳了)
<% @user.albums.each do |album| %>
<div class="albumthumb">
<%= link_to image_tag(!album.photos.empty? ? album.photos.first.avatar.url(:medium) : ("questionmark.png"), :size => "150x150"), user_album_path(@user, album) %>
<br>
<%= album.name %>
</div>
<% end %>
張
照片/ new.html.erb(問題在這裏也)
#my new uploader that works with amazon s3, but doesn't seem to be storing the pics in my database
<%= s3_uploader_form post: user_album_photos_path, as: "photo[avatar]", id: "myS3Uploader" do %>
<%= file_field_tag :file, multiple: true %>
<% end %>
#this is my old upload form that worked fine when uploading pics to my local public directory.
#
#<% provide(:title, "Upload pictures") %>
#
#<%= form_for([@user, @album, @photo], :html => { :multipart => true }) do |f| %>
#
#<%= f.file_field :avatar, multiple: true, name: "photo[avatar]" %>
<div id="pics">
<%= render :partial => "photo", :collection => @photos %>
</div>
<script id="template-upload" type="text/x-tmpl">
<div class="upload">
{%=o.name%}
<div class="progress"><div class="bar" style="width: 0%"></div></div>
</div>
</script>
這裏是我的代碼在GitHub上:https://github.com/EdmundMai/railstest/blob/master/app/views/photos/new.html.erb
讓我知道,如果你需要我上傳任何代碼。請幫忙!
謝謝馬克斯,我現在檢查一下,讓你知道在幾分鐘內 – Edmund
你可能給我一些指導,我應該看看mvc的哪一部分? html表單對我來說看起來相當複雜。你建議我停止使用s3_direct_upload gem嗎? – Edmund
使用通常的表單上傳方法與Paperclip進行交互肯定更容易。然而,JQuery文件上傳確實有很多精巧的功能,比如多次上傳,拖放,進度指示等等。所以如果你想要這些功能,那麼添加額外的Javascript代碼來使它與Paperclip一起工作可能是值得的。 –