railsでzipファイルをアップする機能を作りたいのですが、フォームをつくって、
form_tagをつかい、この様にパラメーターが送られてきた時、
#<ActionDispatch::Http::UploadedFile:0x00007fc83d6ac3b0 @tempfile=#<Tempfile:/var/folders/9p/x16hqbg55hqbszlqpz978fph0000gn/T/RackMultipart20181020-47258-udm20.zip>, @original_filename="exhibit.zip", @content_type="application/zip", @headers="Content-Disposition: form-data; name=\"fileupload[file]\"; filename=\"exhibit.zip\"\r\nContent-Type: application/zip\r\n">
以下のようにして「exhibit.zip」の名前を取得しました。
uploaded_file = fileupload_param[:file] #uploaded_fileの中身は「#<ActionDispatch::Http::UploadedFile:0x00007fc83d6ac3b0」 uploaded_file.original_filename #これで、「exhibit.zip」の名前を取得
これをitemというモデルと関連付けて、form_forをつかi,
この様にパラメーターが送られてきた時、
"item"=>{"csv"=>#<ActionDispatch::Http::UploadedFile:0x00007fe435702788 @tempfile=#<Tempfile:/var/folders/9p/x16hqbg55hqbszlqpz978fph0000gn/T/RackMultipart20181020-47171-14ykbew.zip>, @original_filename="exhibit.zip", @content_type="application/zip", @headers="Content-Disposition: form-data; name=\"item[csv]\"; filename=\"exhibit.zip\"\r\nContent-Type: application/zip\r\n">}
どの様にしたら送信したファイルの名前を受けとる事が出来ますか?以下のようにやってもダメでした。
uploaded_file = @item[:csv] #uploaded_fileの中身は「#<ActionDispatch::Http::UploadedFile:0x00007fe435702788」 uploaded_file.original_filename #これだと、「undefined method `original_filename' for "#<ActionDispatch::Http::UploadedFile:0x00007fc448b667f0>":String」が出る
あなたの回答
tips
プレビュー