Python(CGI)で画像アップローダーを作ってみた

こんにちは!増田拓海です。

今回はPythonで画像をアップロードして表示するCGIプログラムを作ったので記事にしてみます。

プログラム

index.html

cgi-bin/index.py

このプログラムでindex.htmlでアップロードした画像がindex.pyに送られてbase64に変換されて表示されます。

index.html解説


formのactionにcgi-bin/index.pyを指定したformです。
methodにpost、enctypeにmultipart/form-dataを指定してください。

index.py

※面倒くさいからGithubGist使うのやめますw

import cgi
import base64

必要なモジュールです。
cgi=画像ファイル読み込み用
base64=画像ファイルのバイナリ→base64変換用

print("Content-Type: text/html; charset=UTF-8")
print("")

ヘッダーです。今回は画像をhtmlのimgタグに入れて表示したいのでtext/htmlを指定しています。

form = cgi.FieldStorage()
img = form.getvalue("imagefile")

post送信された画像を取得して”img”変数に代入するコードです。

after_encode = base64.b64encode(img)

これでバイナリの画像ファイルをbase64に変換します。

after_encode = str(after_encode)
after_encode = after_encode.replace("b'","")
after_encode = after_encode.replace("'","")
print("".format(after_encode))

このコードでいらない部分を消してimgのsrcにbase64の画像データを入れています。
(data:image/[ファイル形式];base64,[data])

まとめ

意外と簡単だった(最初js使ってとか難しく考えてた)
使い道がない(DBに直接突っ込んだら…)

最後まで読んでいただきありがとうございました。

お寿司を送る BitZenyを送る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。