php - 从表单输入上传照片和文本并使用 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”方法发送照片。
解决方案
您应该将图像保存在您的服务器中,然后将直接下载链接传递给电报。像这样:
//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 文档
推荐阅读
- swiftui - SwiftUI DatePicker 星期几语言
- google-cloud-platform - 在部署新服务修订期间,Cloud Run 如何处理我的应用程序中运行的内容?
- c++ - getchar() 没有读取完整的字符串
- oracle - 在 pl/sql 中使用 utl_file.put_raw 将陈旧数据写入文件的可能性
- r - R中count包中的renewCount()函数
- python - Keyerror 83 并且试图在数据帧的切片副本上设置一个值
- reactjs - 在反应页面中刷新将其重定向到 /404 页面
- google-apps-script - 复制行时触发错误
- java - Android:选择正确的设置来准备 ActivityResultLauncher 以选择联系人
- tailwind-css - 弹性项目内的导航栏溢出问题