Discord.py Bot sending file to Discord Channel

32,987

Solution 1

I was researching the same thing and I found this to work:

    await ctx.send(file=discord.File(r'c:\location\of\the_file_to\send.png'))

Here is where I found it: link

Solution 2

Try doing it this way.

@bot.command(pass_context=True)
async def send(ctx):
    area=ctx.message.channel
    await bot.send_file(area, r"c:\location\of\the_file_to\send.png",filename="Hello",content="Message test")

You can refer to the discord documentation for it here link

Share:
32,987

Related videos on Youtube

Enzo Romano
Author by

Enzo Romano

Updated on November 10, 2021

Comments

  • Enzo Romano
    Enzo Romano over 2 years

    I am trying to make my discord bot send a jpg file to my discord server, but I keep getting an error that seems pretty uncommon as I can not find any solutions to it on the internet...

    the error is... discord.ext.commands.errors.CommandInvokeError: Command raised an exception: ClientRequestError: Can not write request body for https://discordapp.com/api/v6/channels/454374995758678029/messages

    My imports are

    import time
    
    import discord
    from discord.ext import commands
    from discord.ext.commands import Bot
    import asyncio
    

    The code that I will pull out that the error is related to is

    @bot.command(pass_context = True)
    
    async def image(ctx):
    
            await bot.send_file(ctx.message.channel, open('halogen.jpg'))
    

    Am I just missing an import or is there an actual problem with my code?

    Thanks guys

    • Patrick Haugh
      Patrick Haugh about 6 years
      You should be opening your object in 'rb' mode. You can also just pass the path to the file instead of a file object. See the send_file documentation