rails上傳檔案 非外掛程式

2021-08-30 23:46:54 字數 1856 閱讀 5467

rails檔案上傳

除了通過*****clip等外掛程式來上傳檔案之外,也可以不用外掛程式,用ruby的file模組中的方法來實現檔案上傳。

一、控制器

在控制器中加入以下兩個方法,其中getfilename用來修改所上傳的檔名稱,

在我所上傳的檔案中存在空格,會出現,系統找不到檔案的錯誤,所以將檔案中的空格去掉,

def uploadfile(file)

if !file.original_filename.empty?

@filename=getfilename(file.original_filename)

#設定目錄路徑,如果目錄不存在,生成新目錄

fileutils.mkdir("#/db/upload") unless file.exist?("#/db/upload")

#寫入檔案

file.open("#/db/upload/#", "wb") do |f|

f.write(file.read)

endreturn @filename

endend

#檔名

def getfilename(filename)

if !filename.nil?

filename.split(' ').to_s

endend

二、檢視

form_tag的模板:

<% form_tag  :multipart => true  do %>

<%= file_field_tag "photo" %>

<% end %>

form_for的模板:

<% form_for :user, @product, :html =>  do |f| %>

<%= f.file_field :photo%>

<% end %>

注意:兩種表單multipart屬性的寫法,通過加這個屬性使表單支援上傳檔案,不加這個屬性或寫的不對,會報下面的錯   誤.

檔案上傳(外掛程式版)

問題描述 專案裡需要上傳1g以上的iso檔案,而且要做成全域性元件,切換各個頁面的時候,上傳介面還在並且上傳不會受到影響,實現分片上傳 秒傳以及斷點續傳的功能,所以使用了vue uploader外掛程式 解決方法 元件a封裝上傳檔案 選擇檔案 元件b接收 uploadiso 元件a width 10...

plupload檔案上傳外掛程式

plupload檔案上傳外掛程式 plupload 說明文件 參考樣例 上傳 最大500kb,支援jpg,gif,png格式。載入script 當點選按鈕 上傳 後,彈出選擇檔案對話方塊,按 ctrl 選擇多上傳。然後呼叫 uploader.start 方法,開始上傳。上傳中間過程我們可以用 upl...

Rails裡給檔案上傳新增progress bar

檔案上傳很慢時,ui沒有什麼使用者提示,這樣讓人很費解,所以我們可以給檔案上傳新增乙個動態而美觀的progress bar 首先給form for新增乙個onsubmit事件,並在form for下緊跟乙個顯示progress bar的div code form for asset,url asse...