2 回答

TA貢獻1821條經(jīng)驗 獲得超5個贊
首先,您必須存儲上傳的文件。
在您的html代碼中,您有錯誤。您必須添加enctype='multipart/form-data'支持file input。
所以你的html代碼必須是這樣的:
<form action="process.php" method="post" enctype="multipart/form-data">
<input type="text" name="name">
<input type="file" name="photo">
<input type="submit" value="Submit">
</form>
在您的php文件中,您必須先保存上傳的文件。
define ('url',"https://api.telegram.org/bot****/");
$info = pathinfo($_FILES['photo']['name']);
$ext = $info['extension']; // get the extension of the file
$newname = "newname.".$ext;
$target = 'images/'.$newname; // the path you want to upload your file
move_uploaded_file( $_FILES['photo']['tmp_name'], $target);
之后,您可以將此文件發(fā)送到電報 api。
$chat_id = '123456'; // telegram user id
$url = url."sendPhoto?chat_id=$chat_id";
$params = [
'chat_id'=>$chat_id,
'photo'=>'Your site address/'.$target,
'caption'=>$_POST['name'],
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close($ch);
echo $server_output;

TA貢獻2080條經(jīng)驗 獲得超4個贊
您應(yīng)該將圖像保存在您的服務(wù)器中,然后將直接下載鏈接傳遞給電報。像這樣:
//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");
注意:當(dāng)通過 URL 發(fā)送時,目標文件必須具有正確的 MIME 類型(例如,用于 sendAudio 的音頻/mpeg 等)。
在此處閱讀 sendPhoto 文檔
- 2 回答
- 0 關(guān)注
- 170 瀏覽
添加回答
舉報