私は、私の見解でfile_field
を入れている:Ruby on Railsで選択したファイルのフルパスを取得するにはどうすればよいですか?
<% form_for(:uploaded_file, @feed, :url => {:action=>'copy'}, :html=> {:multipart=>true}) do |f| %>
<%= f.file_field :uploaded_file %> <br>
<%= f.submit "Submit" %>
<% end %>
そして私は、Excelファイル読み込み私のコントローラのメソッドがあります:要求
"authenticity_token"=>"BbQRomTLhiF2O54/G6eHwnnaWbLttUSvo31FO3ZtKoA=",
"uploaded_file"=>{"uploaded_file"=>#<ActionDispatch::Http::UploadedFile:
0x27b7ab0 @original_filename="test.xlsx",@content_type="application
/vnd.openxmlformats-officedocument.spreadsheetml.sheet", @headers=
"Content-Disposition: form-data; name=\"uploaded_file[uploaded_file]\";
filename=\"volumetrie.xlsx\"\r\nContent-Type: application/vnd.openxmlformats
officedocument.spreadsheetml.sheet\r\n", @tempfile=#<File:C:/DOCUME~1/me/
LOCALS~1/Temp/RackMultipart20110714-524-fy6vu>>}, "commit"=>"Submit"}
Iと
def copy
file = ""
book = Spreadsheet.open 'excel_file'
table = book.worksheet 'excel_sheet'
table.each do |row|
file << row
end
end
ログイン選択したファイルのパスをSpreadsheet.openメソッドに挿入しようとしています。エラーメッセージは次のとおりです。そのようなファイルまたはディレクトリはありません。
私のExcelファイルのパスである'excel_file'
の代わりに、file_field
で選択したファイルのパスを使用したいと思います。このパラメータはどのように使用できますか?
ありがとうございました!
を試してみてください?あなたのマシンに関する情報を得ることができないので、ユーザのマシン上で – Gareth
を実行することはできませんが、ユーザがxlsファイルを選択してデータベースに追加する方法を教えてください。 (パスを必要とせずに) – TW147
ああ、ユーザーはブラウザのファイル選択ダイアログを使ってファイルを選択することができますが、サーバーに送られるすべてのファイルはファイル名とファイルの内容です – Gareth