HTTP通信でファイルを送受信してみる

非常に簡単な例だが、HTTP通信でクライアントからサーバにファイルを送信する例。クライアント側モジュールであるSend.pyに送信するファイルを引数として与えてあげると、mod_python上で動くサーバモジュールmptest.pyがそのデータを受け取りファイルとして書き出すという流れ。

—–



Send.py

import sys, urllib2
req = urllib2.Request("http://localhost/test/mptest.py/")
file = open(sys.argv[1], "r")
urllib2.urlopen(req, file.read())
file.close()

mptest.py

from mod_python import apache
def handler(req):
f = open("C:/Temp/rcvfile.tmp", "w")
f.write(req.read())
return apache.OK

実行例。

Python.exe Send.py C:\FileSend\test.txt

非常に簡単な例だが、ソケット通信でファイル転送するプログラムを書いたことのある人間としては、このような楽な仕組みができあがっていることに素直に喜べる。