今野 滋
画像掲示板や、ブログサイトを作る際に必要となる知識です。ファイルの転送には、アルファベット等の文字情報と、画像等のバイナリーデータがあります。ここではバイナリーデータの扱いを説明します。
まずはサンプルファイルをダウンロードしてください。 展開すると、testpage.html, hello.cgi, usagi.jpg の3つのファイルがあります。 これらを、例の場所にFTP転送してください。自動的に上書きされます。
新しい場所にFTP転送した場合には、パーミッションの変更をお忘れなく。
以下はそれぞれのファイルの内容の説明となります。
ポイント:testpage.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><body> <form action="./hello.cgi" method="POST" enctype="multipart/form-data"> <input type="file" name="graphic" size="60"> <input type="submit" value="Upload"> </form> </body></html>
<meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-control" content="no-store"> <meta http-equiv="Cache-control" content="no-cache"> <meta http-equiv="Expires" content="Mon, 1 Jan 1990 01:01:01 GMT">
str = `identify ./usagi.jpg`
から/\b(\d+)x(\d+)\b/ =~ str
などで取り出せます。または、三並慶佐氏のimage_size.rbを使うと高速。)して、testpage.htmlの中身を自動で書き換えて、画像のサイズを指定する記述を入れる様にしてみてください。ポイント:hello.cgi
require "cgi" cgi=CGI.new open("./usagi.jpg","wb") do |fh| fh.write cgi['graphic'].read end print "Location: ./testpage.html\n\n"
usagi.jpg > うちのダッシュくんが生後4ヶ月のときの写真です。
更新日:2005年01月