(1)建立一個rails project
rails uploaddemo -d sqlite3
(2)在uploaddemo/public, 建立一個文件夾data, 用來保存上載的文件
(3)創建一個controller名為upload, 包含兩個action, 分別為selectfile和savefile
selectfile用來選擇文件, savefile用來保存文件
script/generate controller upload selectfile savefile
(4)編寫selectfile.html.erb
<% form_for :datafile, :url=>{:action=>:uploadFile}, :html=>{:multipart=>true} do |form| %>
<%=form.file_field 'uploaded_data' %>
<%=submit_tag 'upload file' %>
<% end %>
(5)編寫controller的savefile
filename = params[:datafile][:uploaded_data].original_filename
File.open("#{RAILS_ROOT}/public/data/#{filename}", "wb") do |file|
file.write(params[:datafile][:uploaded_data].read)
end
完整UploadController為
class UploadController < filename =" params[:datafile][:uploaded_data].original_filename" text="">"File Upload Successed!"
end
end
(6)登入http://localhost:3000/upload/selectfile, 選擇文件和上載
(7)若上載成功, 頁面會轉到http://localhost:3000/upload/savefile
並在畫面見到 File Upload Successed!字眼
(8)檢查uploaddemo/public/data會見到你剛上載的文件
註: 若文件名為中文會有問題, 解決中...
沒有留言:
張貼留言