Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2015
    Messaggi
    26

    Upload di file attraverso un bot di Telegram

    Ciao a tutti,
    sto facendo dei test per l'upload di file attraverso un bot Telegram.

    All'uopo, ho utilizzato il seguente script:

    <?php
    define("UPLOAD_DIR", "./uploads/");
    if(isset($_POST['action']) and $_POST['action'] == 'upload')
    {
    if(isset($_FILES['user_file']))
    {
    $file = $_FILES['user_file'];
    if($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name']))
    {
    move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']);
    }
    }
    }
    ?>
    Script che funziona in collaborazione con un form su una pagina web.
    Ho ritenuto di poter usare lo stesso script che al posto di ricevere il file da uploadare dalla form html, lo riceve da un allegato da Telegram.
    Non funziona.
    Quindi vorrei testare lo script php sostituendo la variabile "user_file" con l'url del file che Telegram restituisce dopo l'upload.

    Al fine di verificare l'avvenuto upload del file, chiedo, è corretto modificare lo script nel modo seguente?

    <?php
    define("UPLOAD_DIR", "./uploads/");
    if(isset($_POST['action']) and $_POST['action'] == 'upload')
    {
    if(isset($_FILES['https://api.telegram.org/file/bot530403877:AAES_KZVTJoSlLXyREvPI-JiWgH5w5B4vr4/photos/file_31.jpg']))
    {
    $file = $_FILES['https://api.telegram.org/file/bot530403877:AAES_KZVTJoSlLXyREvPI-JiWgH5w5B4vr4/photos/file_31.jpg'];
    if($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name']))
    {
    move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']);
    }
    }
    }
    ?>

    Grazie per l'aiuto

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, qui intanto ci sono le API di Telegram https://core.telegram.org/ . Non so se le hai usate o viste , magari potrebbero tornare utili.
    Ad occhio e croce non credo sia corretto cmq. $_FILES dovrebbe essere presente se hai inviato una form ed usato un campo di tipo FILE appunto per upload.
    Se hai una url piuttosto e vuoi verificare che esista il file, o fai un controllo con ad esempio http://php.net/manual/en/function.get-headers.php (sempre che le API non siano bloccato per chiamate non provenienti dall'esterno) o ti scarichi il file con file_get_contents() (è solo un altro esempio).
    Le funzioni di upload funzionano sullo stesso server oltretutto, di fatto in $_FILES il tmp_name è la temporanea su file system dove viene uplodato momentaneamente il file del caso e poi spostato da te con le relative funzioni.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.