【发布时间】:2020-10-11 15:52:44
【问题描述】:
我正在尝试在 python 脚本中将 base 64 中的字符串作为参数传递。
$request->current_image 是我在 base64 中的图像,我还有另一个参数 $email。 PHP代码是:
public function access(Request $request)
{
$output = exec("python login.py $request->current_image $email ");
dd($output);
}
我收到此错误:
exec(): 无法 fork [python login.py data:image/png;base64,iV.....
还有其他方法吗?
【问题讨论】:
-
这个脚本是什么语言的?
-
这不是一个真正的 Python 问题。问题是如何将数据从 PHP 传送到它使用
exec生成的进程。尽管完成这项工作可能需要调整 Python 脚本。如果不是您自己的代码,请查看文档; Python 极不可能期望以这种方式提供信息 - 它应该期望命令行参数中有一个 file name (在这种情况下,您可以让 PHP 编写一个临时文件首先),或者期待标准输入上的原始数据。 -
@KarlKnechtel - 只要 base64 没有嵌入换行符并且它的长度小于
getconf ARG_MAX,它就可以工作。这是我系统上的 2097152,但结果可能会有所不同。 (假设这是 linux/mac) -
我想是这样,但这并不是命令行工具设计的推荐方法。
-
在那个尾随...中有更多有趣的信息吗?你可以试试
exec("python --version")看看php(它的php?)是否可以找到python可执行文件。
标签: python php laravel image base64