Ruby, CGIで,ファイルをアップロードをすることはできたのですが,他の情報を送ることができず悩んでいましたが,解決しました。
以下を参考にしました。
<html> <head><title>アップロードサンプル</title></head> <body> <form method="POST" action="up.rb" enctype="multipart/form-data"> アップロードしたいファイル: <input type="FILE" name="file"><br> 文字列を渡せるか: <input type="TEXT" name="str"><br> <input type="SUBMIT" name="upload" value="アップロードする"> </form> </body> </html>
#!/usr/bin/ruby require 'cgi' FILE_PATH = "uploaddir" cgi = CGI.new name = cgi.params["str"][0].read file = cgi.params["file"][0] file_name = file.original_filename.split(/(\\|\/)/)[-1] File.open("#{FILE_PATH}/#{file_name}", "w") do |f| f.binmode f.write(file.read) end puts cgi.header("type" => "text/html", "charset" => "euc-jp") puts <<EOS <html> <head><title>アップロードサンプル</title></head> <body> <h1>アップロードされたファイル</h1> ファイル名:#{file_name}<br> 渡された文字列:#{name} </body></html> EOS