我需要使用“输入类型=“文件”“发送图像,但图像大小没有任何限制

时间:2019-04-21 21:23:37

标签: php html file-upload bots telegram

我正在编写电报机器人。 我想将图像发送到存储在数据库中的一系列ID(我不上传照片,而只是发送它)。 发送图像的功能工作正常。 我唯一的问题是不会发送大于1MB的图像。

我不会在任何地方上传这些图像,我只是发送它们并指定图像网址(因此,上传最大尺寸不是问题)。

/*this is the function that I use to send the image*/


<?php

include "./db.php";
include "../Gestionale-Bar/webhook.php";

$queryID="SELECT DISTINCT acquirente FROM BackupChat ORDER BY acquirente";
$resultID=$conn->query($queryID);
$file =new CURLFile(realpath($_FILES["photo"]["tmp_name"]));
while($rowID = $resultID->fetch_assoc())
{
  $url        = $website . "/sendPhoto?chat_id=" . $rowID['acquirente'] ;
  $post_fields = array('chat_id'   => $rowID['acquirente'], 'photo'     => $file);

  $ch = curl_init(); 
  curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Content-Type:multipart/form-data"
  ));
  curl_setopt($ch, CURLOPT_URL, $url); 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); 
  $output = curl_exec($ch);
}

echo "<script language=\"Javascript\">
window.location.href='mywebpageblablabla';
</script>
";

?>
/*this is the input button where I select the photo*/


function img()
{
  var gridWrapper = document.querySelector('.content');
  gridWrapper.innerHTML =
    "<form action=\"inviaimg.php\" enctype=\"multipart/form-data\" method=\"post\" class=\"inputfile\">" +
    "<input type=\"file\" name=\"photo\"/>" +
    "<input type=\"submit\" value=\"send\" style=\"background-color:#2a2b30; color:#5c5edc; font-family:AvenirNext; width:10%; height:30px\"></form>"
}

每当我尝试发送小于1MB的图像时,一切正常。 所以基本上我希望发送更大尺寸的照片。 :)

1 个答案:

答案 0 :(得分:0)

在您的 $ post_fields 中,您有关键照片,其值为CURLFile对象。在电报机器人的文档中,它属于该目录,传递一个值为 file_id作为String的值,以发送电报服务器上存在的照片,以 HTTP URL作为一个字符串供Telegram获得来自互联网的照片或通过传递文件路径上传本地照片

您写的不是上传文件而是发送文件。尽管如此,您还是可以使用 $ _ FILES [] 来获取 realpath()上载的文件。也许这是 upload_max_filesize 的错误。检查一下。

还要检查这段代码:

$file = realpath($_FILES["photo"]["tmp_name"]);
while($rowID = $resultID->fetch_assoc())
{
   $url        = $website . "/sendPhoto?chat_id=" . $rowID['acquirente'] ;
   $post_fields = array('chat_id'   => $rowID['acquirente'], 'photo'     => $file
);

以此替换旧的并提供反馈。问候,李子!

来源: