やりたいこと
可能な限りスクラッチでのデータの受け取りと保存
やりたくないこと
require 'net/https'
require 'cgi'
ライブラリを読み込まないで、Webブラウザから画像を受け取りたいです。
これは勉強などを目的としていて、セキュアなシステムを目的としていません。
HTML画像投稿フォーム
<form method="POST" action="./save_image.rb" enctype="multipart/form-data"> <input type="file" name="image_file" accept="image/png, image/jpg"> <input type="submit" value="POST">
`enctype="multipart/form-data` に留意します。データをやりとりするための指示です。
これがないと、POSTテキストだけ送受信されます。
POSTデータ
-----------------------------48293723925086650521030035409 Content-Disposition: form-data; name="image_file"; filename="test.jpg" Content-Type: application/octet-stream JFIFHHxPhotoshop 3.08BIM?........ .... : : -----------------------------48293723925086650521030035409--
filenameとかは取得して、アンカーになってるPOSTデータは破棄して、画像部分(バイナリ)を画像として取得したい。
受け取り
$stdout = File.open("./test.jpg", "wb") #出力先変更, "wb" を指定することでバイナリで保存を明示 datas = STDIN.map{|i| i.chomp}.to_a # POSTデータを配列化 for i in datas puts i end $stdout = STDOUT # 元に戻す
できない。
コメント
コメントを投稿