Sharing Files

Sharing files from your XMPP chat client

HTTP File Upload

The modern method for sharing files for XMPP chat clients is HTTP File Upload. This method works very well in XMPP clients that are under continued development and support.

When using HTTP File Upload, a file that is intended to be shared is uploaded to the server and the server returns a download link to all participants in the conversation. The URL of the download includes a directory name which is nearly impossible to guess, preventing outsiders from easily finding and downloading the file.

Using HTTP File Upload

On the Psi-Plus client, to share a file, click the "Share Files" icon.

Select the file you want to share. It can be any kind of file. Typically, people share images.

Psi-Plus has an option to include a text comment with the file selected.

The remote client, in this case Gajim, receives a link that when clicked on, opens a browser that views or downloads the file.

Viewing Images In-line

Some chat clients support previewing image files in-line with the the text messages.

Modern XMPP clients support image previewing in-line with text messages. Look in the plugins of your client to see if it is supported. For example, Gajim offers URL Image Preview and Psi-Plus offers a plugin called “Image Preview”.

OMEMO Media Sharing

OMEMO is a standard for encrypting XMPP chat sessions that is gaining in popularity. OMEMO has a feature for encrypting files on the fly before sending via HTTP Upload. On clients that support this feature, the user only needs to be chatting with OMEMO turned on. The link to an OMEMO encrypted file looks like this:


The file name has not changed, it is still perfect-for-orange-juice.jpg. Instead of the link beginning with https:// it begins with aesgcm://. Also, a long string of text after the # is appended to the link. Someone with access to the file alone, without that long string after the #, will not be able to decipher the file.

Upload Limits on

The following limits apply when using HTTP File Upload on

  • allows you to store a total of 200 megabytes of data
  • allows a maximum file size of 25 megabytes
  • will automatically delete shared files after 5 days

Socks5 Bytestreams

The older method for sharing files for XMPP chat clients is Socks5 Bytestreams. If you are using an older XMPP client or if you refuse to keep your file on the server even for a minute, then Socks5 Bytestreams may work for you.

Here we see an example of sending a file using Socks5 Bytestreams.

From the Gajim client, choose to send file directly.

Select the file from the file system.

You can include a description of the file.

On the Pidgin XMPP client, the recipient is notified that his chat partner wants to send a file.

The recipient saves the file.

Topics covered on this page:

Last modified July 9, 2020