Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在电报机器人(JAVA)中下载文件_Java_Api_File_Download_Telegram - Fatal编程技术网

如何在电报机器人(JAVA)中下载文件

如何在电报机器人(JAVA)中下载文件,java,api,file,download,telegram,Java,Api,File,Download,Telegram,我想在我的telegram机器人代码中下载一个文件,许多教程都说我必须使用getFile方法,而我在telegram API的4.2版本中找不到这种方法 那么,如何将文件下载到主机pc中的特定目标? 谢谢假设您使用的是rubenlagus的TelegramBot SDK,因为我也面临同样的问题。下面是我的解决方案 GetFile getFile = new GetFile().setFileId(fileId); String filePath = execute(getFile).getFil

我想在我的telegram机器人代码中下载一个文件,许多教程都说我必须使用getFile方法,而我在telegram API的4.2版本中找不到这种方法 那么,如何将文件下载到主机pc中的特定目标?
谢谢

假设您使用的是rubenlagus的TelegramBot SDK,因为我也面临同样的问题。下面是我的解决方案

GetFile getFile = new GetFile().setFileId(fileId);
String filePath = execute(getFile).getFilePath();
File file = downloadFile(filePath, outputFile);
我也有同样的问题。 这就是我的解决方案。不是很好,但很管用

if (update.getMessage().hasDocument()){
        String doc_id = update.getMessage().getDocument().getFileId();
        String doc_name = update.getMessage().getDocument().getFileName();
        String doc_mine = update.getMessage().getDocument().getMimeType();
        int doc_size = update.getMessage().getDocument().getFileSize();
        String getID = String.valueOf(update.getMessage().getFrom().getId());

        Document document = new Document();
        document.setMimeType(doc_mine);
        document.setFileName(doc_name);
        document.setFileSize(doc_size);
        document.setFileId(doc_id);

        GetFile getFile = new GetFile();
        getFile.setFileId(document.getFileId());
        try {
            org.telegram.telegrambots.meta.api.objects.File file = execute(getFile);
           downloadFile(file, new File("./data/userDoc/"+getID+"_"+doc_name));
        } catch (TelegramApiException e) {
            e.printStackTrace();
        }


    }
我得到了这个解决方案

您希望bot将文件下载到服务器,还是希望bot强制任何客户端将文件下载到客户端系统?后者是不可能有希望的!!!。我认为下载必须由用户发起。这很好。如果有帮助,您可以检查: