Python-PHP将base64保存到映像

Python-PHP将base64保存到映像,php,python,Php,Python,你好。有人能帮我解决我的问题吗。我是python和php新手。我想将base64编码的图像发送到我的php服务器。但是我不知道我的php脚本发生了什么 编码后的数据正确发送到php脚本,并将newImage.jpg保存到目录c:/image/newImage.jpg。但是当我尝试预览newImage.jpg时,它说“Windows照片查看器无法打开此图片,因为文件似乎已损坏、损坏或太大” 问题是如何正确保存图像。 如有任何意见和建议,我们将不胜感激 对不起我的英语。多谢各位 PHP脚本: <

你好。有人能帮我解决我的问题吗。我是python和php新手。我想将base64编码的图像发送到我的php服务器。但是我不知道我的php脚本发生了什么

编码后的数据正确发送到php脚本,并将newImage.jpg保存到目录c:/image/newImage.jpg。但是当我尝试预览newImage.jpg时,它说“Windows照片查看器无法打开此图片,因为文件似乎已损坏、损坏或太大”

问题是如何正确保存图像。 如有任何意见和建议,我们将不胜感激

对不起我的英语。多谢各位

PHP脚本:

<?php
    $encodedString = str_replace(' ','+',$_POST['test']);
    $decoded=base64_decode($encodedString);
    file_put_contents('c:/image/1/newImage.JPG',$decoded);
?>

在PHP代码中,您需要在
$\u POST['test']
中输入数据,然后在
base64\u decode()中输入数据。您不需要将空格替换为“+”(反正是前后对齐的)

在Python中,您只需要
urlencode()
,也不需要
urllib.quote()

因此,您的PHP可以是:

<?php
    $decoded = base64_decode(urldecode($_POST['test']));
    file_put_contents('c:/image/1/newImage.JPG',$decoded);
?>

我是一个懒惰的家伙,但我会在php中帮助改变这一点

<?php
    $encodedString = str_replace(' ','+',$_POST['test']);
    $decoded=base64_decode($encodedString);
    $decoded=imagecreatefromstring($decoded);
    imagejpg($decoded, "temp.jpg");
    copy("temp.jpg",'c:/image/1/newImage.JPG');
?>

问题很简单,如果您试图将尚未成为图像的对象保存到文件中,请先将图像设置为临时图像,然后将其复制到您想要的位置

import urllib
import urllib2
from urllib import urlencode

url = 'http://192.168.5.165/server/php/try2.php'
encoded = open("c:/image/1.jpg", "rb").read().encode("base64")

data = {'test': encoded}
encoded_data = urlencode(data)

website = urllib2.urlopen(url, encoded_data)
print website.read()
<?php
    $encodedString = str_replace(' ','+',$_POST['test']);
    $decoded=base64_decode($encodedString);
    $decoded=imagecreatefromstring($decoded);
    imagejpg($decoded, "temp.jpg");
    copy("temp.jpg",'c:/image/1/newImage.JPG');
?>