我在網上瀏覽了很多東西。我認爲回形針可能是我最大的希望。但我不知道如何使用它將圖像文件從Rails 4上傳到MySQL數據庫中。 是的,我知道將它加載到文件夾中更好,但我需要將它加載到數據庫中。 所以,如果你能幫助我,將不勝感激。Rails 4如何將圖像加載到數據庫中作爲blob
謝謝
我在網上瀏覽了很多東西。我認爲回形針可能是我最大的希望。但我不知道如何使用它將圖像文件從Rails 4上傳到MySQL數據庫中。 是的,我知道將它加載到文件夾中更好,但我需要將它加載到數據庫中。 所以,如果你能幫助我,將不勝感激。Rails 4如何將圖像加載到數據庫中作爲blob
謝謝
我認爲你要與圖片上傳和Rails是如何工作的困惑(特別是與Paperclip/Carrierwave)。我將解釋他們是如何爲你工作:
你只存儲文本&引用在您的數據庫(無圖像)
MYSQL &的Rails只存儲在文本數據庫,沒有別的。該應用程序的工作方式是採取數據的數據表&內,然後與其它代碼&資產在你的應用程序鏈接它,使之共同努力
回形針& Carrierwave不將圖像存儲在您的數據庫;他們將它們存儲在Rails應用程序的/public/system
文件夾中(如果要將它們放在那裏,則在S3上)。然後他們通過將其名稱存儲在數據庫中鏈接到圖像。這就是它
當你要加載的圖像(使用回形針爲例),你實際使用的ActiveRecord加載image
數據表中的內容,並回形針會創建自己的ActiveRecord對象關閉它的背面
回形針或者Carrierwave會幫助你
你應該看看this Railscast,它會幫助你很多:
這是一個後來由教授改變的作業要求。 – morfious902002
您不需要carrierwave
或paperclip
上傳寶石來將圖像存儲爲blob。
下面是一個例子如何,你可以在二進制字段(raw_file
)
形式的圖像存儲:
<%= form_for @user do |f| %>
<%= f.file_field :avatar %>
<% end %>
控制器:
def create
@user = User.new(params[:user])
# store uploaded avatar as blob
@user.raw_file = params[:user][:avatar].read
@user.save
end
使用RMagick或mini_magick轉換圖像從blob。
爲什麼把圖像放在數據庫中?根本沒有理由 – Phlip
它是項目的要求。我知道上傳到一個文件夾會更好。 – morfious902002
然後忽略「你只存儲文本...在你的數據庫中」的答案,並將圖像存儲在一個BLOB中。但沒有比「這是項目的要求」更多的信息,實際上很難提供幫助。 – Phlip