使用python连接到php页面并上传图像

时间:2011-02-01 19:11:02

标签: php python ftp

我想知道是否可以使用python连接到某个站点

(EX:http://www.example.com/python

并从计算机上传图像。 基本上我有一个python脚本,从网络摄像头拍摄图像。现在,在拍摄完图像之后,我该如何将该图像发送到网页。如果你告诉我如何让它连接到页面我可以处理其余的。提前谢谢!

这是手上的PYTHON脚本:

from VideoCapture import Device

cam = Device(devnum=1)
cam.saveSnapshot('image.jpg', timestamp=3, boldfont=1)

3 个答案:

答案 0 :(得分:2)

使用urllib2。基本上使用PHP脚本的URL构建urllib2.Request,然后add_data添加要提交的图像数据。

修改:您可以按照示例here,特别是this example来了解整个过程

答案 1 :(得分:1)

我建议你学习“mechanize”库http://wwwsearch.sourceforge.net/mechanize/这很容易使用。

这是我的一个脚本中的示例。

def upload_and_get_data(username, password, image_filename):
    print image_filename, type(image_filename)
    browser = mechanize.Browser()
    browser.open("http://itmages.ru/user/login")
    form = browser.form = browser.forms().next()
    form["LoginForm[username]"] = username
    form["LoginForm[password]"] = password
    login_response = browser.submit()

    # file uploading
    form = browser.form = browser.forms().next()
    form.add_file(open(image_filename, "r"),
                  filename=os.path.basename(image_filename))
    send_response = browser.submit()

    table_regex = re.compile('<table class="stat".*?<input.*?</table>')
    table_data_text = table_regex.findall(
        send_response.get_data().replace("\n", " "))[0]
    table_data_regex = re.compile(
        '<tr> *<td.*?<b>([^<]*)</b></td> *<td>(.*?)</td> *</tr>')
    table_data = dict(table_data_regex.findall(table_data_text))
    return table_data

答案 2 :(得分:0)

当然。打开文件,然后使用urllib:

imgfile = open("image.jpg", "rb")
urllib.urlopen("http://www.example.com/", imgfile.read())