Есть ли способ передать изображение как переменную из PHP в Python Script - PullRequest
0 голосов
/ 19 апреля 2019

Я получаю сообщение об ошибке при передаче закодированного в base64 изображения String в скрипт Python ...., который не может запустить shell_execute ("python hello.py $ data"). Вот мой код

phpФайл

 <?php
 echo "Good Work";
 $img = file_get_contents("aaaa.jpg");
 $data = base64_encode($img);
 $output = shell_exec("python hello.py".$data);
 echo $output;
 ?>

hello.py Файл

import sys
import base64
image_64_encode=sys.argv[1]
with open("image.jpg","wb") as fh:
     fh.write(base64.decodebytes(image_64_encode))`

1 Ответ

0 голосов
/ 19 апреля 2019

Лучший способ сделать это - записать ваш base64 в отдельный файл, чтобы не было необходимости в кодировке. Я немного изменил ваш код, чтобы отразить это.

PHP FILE

<?php
$img = file_get_contents("image.jpg");
$data = base64_encode($img);
$content = $data;
$file = "myFile.base64";
$fp = fopen($file,"wb");
fwrite($fp,$content);
fclose($fp);

$output = shell_exec("python hello.py $file");
echo $output;
?>

ФАЙЛ ПИТОНА

import sys
import base64
file=sys.argv[1]
f = open(file)
base_64 = f.read()

# print (base_64)
# Do what you want with the base_64 variable.

image_64_encode=base_64
with open("image.jpg","wb") as fh:
   fh.write(base64.decodebytes(image_64_encode))
...