我从屏幕截图中获得了一个 python Image 对象,我想将其保存在运行 PHP 的服务器上。
我想在不将图像保存在用户计算机上的情况下完成所有这些操作,因此我想向 PHP 脚本发送它可以理解的编码,我可以从 PIL Image 实例中获取该编码。
到目前为止,我已经尝试将图像保存到缓冲区(在 python 中)并将数据发送到 PHP 函数 file_put_contents,但生成的文件不是正确的 .png 图像(我刚刚将 PNG 编码字符串保存到扩展名为 .png 的文件...)
这是我的代码...
客户
# shot is an Image instance
buff = StringIO()
shot.save(buff, 'PNG')
args = {'filename':'eg.png','image': buff.getValue()}
data = urllib.urlencode(args)
request = urllib2.Request(self.uploadURL, data)
urllib2.urlopen(request).read()
服务器
# 'filename' arg ends in .png, 'image' arg is the upload parameter ^
$filename = 'images/'.$_POST['filename'];
file_put_contents($filename, $_POST['image']);
我认为在尝试将图像数据写入文件之前,我需要使用 PHP 转换它,但我不确定如何。
我之前通过将图像保存到文件并以 base 64 发送二进制内容来完成此操作,但我根本不希望将图像保存在客户端的计算机上。
谢谢!
免责声明:这个问题和我对编码的看法对我来说完全“恶心”,很抱歉成为如此巨大的菜鸟/可怕的误解。