首页 > 解决方案 > 从表单输入上传照片和文本并使用 php 发送到电报机器人

问题描述

html代码:

<form action="process.php">
     <input type="text" name="name">
 <input type="file" name="photo">
 <input type="submit" value="Submit">
</form>  

进程.php:

define ('url',"https://api.telegram.org/bot****/");

$name = $_GET['name'];
$img=$_FILES['photo']['name'];
$chat_id = '****';
$message = urlencode("Name:".$name);
file_get_contents(url."sendmessage?text=".$message."&chat_id=".$chat_id."&parse_mode=HTML");

我收到短信但没有照片。我不知道如何使用“sendPoto”方法发送照片。

标签: phptelegram-botphotosend

解决方案


您应该将图像保存在您的服务器中,然后将直接下载链接传递给电报。像这样:

//TODO save uploded photo on myfiles/avatar1.png

// send to telegram
file_get_contents("https://api.telegram.org/bot****/sendPhoto?chat_id=1245763214&photo=http://example.com/myfiles/avatar1.png");

注意:当通过 URL 发送时,目标文件必须具有正确的 MIME 类型(例如,用于 sendAudio 的音频/mpeg 等)。

在此处阅读 sendPhoto 文档


推荐阅读