> ## Documentation Index
> Fetch the complete documentation index at: https://www.floe.one/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Send files through a request link

> Send files and folders straight to someone's computer through the request link they sent you, from current Chrome or Edge on a computer.

If someone sent you a [request link](/docs/glossary#request-link), a link with `/r/` in it, you are the
sender. Open it in your browser, pick files or folders, and click **Send**. Once they accept, the
files go straight to the computer of whoever made the link, not to a Floe server. You need nothing
but the browser.

**Needs:** the whole link, a browser, and the link maker's Floe Desktop open and online on their PC.

<Info>
  Sending from a phone? It can work, but it is not what Floe supports. Request links are supported
  in current Chrome and Edge on a computer, and the page says "Works in current Chrome
  and Edge on a computer." under its heading. The page does not turn a phone, a tablet or another
  browser away, so you can try it there. Keep the page open and the screen on until the last file
  arrives, and if it does not work, use Chrome or Edge on a computer. The page refuses only a browser
  without [WebRTC](/docs/glossary#webrtc), the feature Floe uses to connect two devices, with "This
  browser cannot send through Floe".
</Info>

To send from a terminal instead, see [Send through a request link](/docs/cli/send#send-through-a-request-link).
To make a link of your own, see [Request links](/docs/desktop/request-links).

<h2 id="sending-through-a-request-link">
  The short version
</h2>

Everything you send in one go is one [drop](/docs/glossary#drop), and a link takes one drop.

<Steps>
  <Step title="Open the whole link">
    Open it in your browser, Chrome or Edge on a computer where you can. Everything after the `#` is part of
    the link: a link cut short there shows "This link looks incomplete".
  </Step>

  <Step title="Pick files or folders">
    Drop them on the drop area, or use **Choose files** or **Choose folder**.
  </Step>

  <Step title="Click Send">
    The button reads, for example, **Send 3 files**. Until this click, the page has contacted neither their
    computer nor Floe's server. From this click on, they can see your IP address, unless you turned on Hide
    my IP.
  </Step>

  <Step title="Wait for them to accept">
    The page reads "Waiting for them to accept" and counts down the minutes they have left to answer.
  </Step>

  <Step title="Keep the tab in front until the files arrive">
    The page ends on, for example, **ALL 3 FILES ARRIVED**.
  </Step>
</Steps>

<Frame caption="The page with three files chosen, before Send">
  <img src="https://mintcdn.com/floe/Z5AY4b2f0zBz5rfT/images/web/07-request-ready.png?fit=max&auto=format&n=Z5AY4b2f0zBz5rfT&q=85&s=df60afcb08f9c26ca4d5eeacd1b3d358" style={{ width: "100%", maxWidth: "520px", borderRadius: "12px" }} alt="The request link page with three files chosen, Hide my IP unchecked, a Send 3 files button, and a notice that the link maker can see your IP." width="1812" height="1725" data-path="images/web/07-request-ready.png" />
</Frame>

<h2 id="pick-files">
  Pick files
</h2>

A file let go anywhere other than the drop area is not added. A drop can hold up to 10,000 files; for
more, zip them first. For every limit on a drop, see [Limits](/docs/reference/limits#request-links).

* **Picking again adds to the selection.** A file you already picked, at the same path and size, is
  kept once. **Clear** empties the selection: there is no way to remove a single file.
* **After the first pick**, the drop area shrinks to an **Add more files** strip, which opens the file
  picker and still takes a dropped folder. **Choose folder** comes back after **Clear**.
* **While a dropped folder is still being read**, the drop area dims and **Send** stays off. A large
  folder can take a while.
* **On a phone or tablet**, the page shows "Keep this page open and your screen on." above **Send** once
  files are picked.

Empty folders are not sent. A dropped folder that held one shows "Empty folders are not sent."; a folder
chosen with **Choose folder** skips them without a line. Files arrive without their original modification
times.

A file nested very deep, or with a very long name, can be too long for the other computer to save, so
shorten the name or zip it first.

**Choose folder** is missing where the browser cannot pick folders: Chrome on Android before version
132, any browser on an iPhone or iPad before iOS 18.4, and browsers with no folder picker at all. The
page then says "This browser cannot pick folders. Drag the folder in, or zip it first."

**Hide my IP (relay only, 2 GB per drop)** sends everything through the [relay](/docs/glossary#relay), a
server that passes the encrypted data along. The other side then sees the relay's address instead of
yours. It is off each time the page opens, and it takes effect when you click **Send**. See
[Hide my IP](/docs/glossary#hide-my-ip) and [What each side can see](#what-each-side-can-see).

Opening a different request link in the same tab reloads the page, and the selection with it. While an
attempt is under way, from **Send** to its end, the page ignores the new link.

<h2 id="send-and-wait">
  Send and wait for them to accept
</h2>

Click **Send**. The page reads "Connecting to their computer". It has up to 20 seconds to reach
Floe's [server](/docs/glossary#signaling-server), which introduces the two computers. Once the server has
let you in, the two computers have up to 75 seconds to connect.

Then the page reads "Waiting for them to accept" with a countdown, such as "They have 9 min to answer.
Keep this page open." The minutes refresh every 15 seconds. In the last minute the line reads "They have
less than 1 min to answer. Keep this page open." They have 9 minutes 45 seconds in all.

Nothing is written to their computer until they click **Accept**. Some links accept by themselves: when
the person who made the link turned on [Auto-accept](/docs/glossary#auto-accept) for it, sending can usually
start at once.

**Cancel** before they accept returns to your files, and you can send again. If they decline, or do not
answer in time, nothing is sent, and **Back to files** returns to your selection.

<h2 id="keep-the-page-open">
  Keep the page open
</h2>

The sending happens in your browser tab, so the tab has to stay open until the last file arrives. Keep the
tab in front. While the page connects, waits or sends, your browser asks before the tab is closed or
reloaded. The **Privacy** and **Terms** links at the bottom of the page ask the same way. For that time the
page does not reload by itself either: when Floe's web app is updated mid-drop, the reload waits until the
attempt ends. See [The page reloaded by itself](/docs/troubleshooting#the-page-reloaded-by-itself).

If you leave anyway, the drop stops. After a reload the page starts again with nothing picked. If they had
already accepted, the link is used: ask for a new one. Before they accepted, the same link still works.

From **Send** until the attempt ends, the page asks your browser to keep the screen on. The browser drops
that whenever the tab is hidden, and the page asks again when you come back. It keeps the screen on and
nothing more: closing a laptop's lid can still put it to sleep.

Once a drop has been sending for 1 minute, the page estimates the time left for the whole drop and adds
advice:

| Time left | The page adds |
| - | - |
| More than 20 minutes | “Keep this computer plugged in and awake, and pin this tab.” |
| More than 2 hours | “If the connection drops, the file that was moving starts over.” |
| More than 24 hours | For example, "This drop would take about 26h 3m on this connection and will stop at 24 hours. Send fewer files." |

The lines add up: a drop with more than 2 hours left shows the first two.

**There is no resume.** If the connection drops, the files that arrived stay on their computer. The rest,
including the file that was moving, has to be sent again through a new link.

Chrome and Edge can unload a background tab to save memory. If that happens during a drop, the drop stops.
When you come back, the page reloads on **Connection lost** with how many files arrived, such as "4 of 12
files arrived. Ask them for a new link to send the other 8." The tab keeps only those two numbers, never a
file name, so the page cannot list which files arrived.

<h2 id="when-the-files-arrive">
  When the files arrive
</h2>

Each file is listed under **ARRIVED** once their Floe has finished saving it. When every file has
arrived, the page says so, for example **ALL 12 FILES ARRIVED**. Under it come the size and the time
taken, counted from their Accept. The route, direct or relay, follows when the page could read it ("1.2
GB in 3m 10s." when it could not).

"Their app reports every file's SHA-256 matched." appears only when their Floe checked every file against
the [SHA-256](/docs/glossary#sha-256) your browser computed, a fingerprint of each file's contents. See
[File checks](/docs/how-it-works/file-checks) for when that line is missing, and
[SHA-256 matched](/docs/glossary#sha-256-matched) for what it means.

**Cancel** after they accepted asks first: "Stop sending?", with "Files that already arrived stay on their
computer. This link cannot be used again." **Keep sending** carries on, and **Stop** ends the drop.

<h2 id="what-each-side-can-see">
  What each side can see
</h2>

On this page, you are the sender. The person who made the link sees a request with your file count and
total size, and clicks **Accept** or **Decline**, unless the link accepts by itself. Their own page about
it is [Accept or decline](/docs/desktop/request-links#accept-or-decline).

| | The person who made the link sees | The sender sees |
| - | - | - |
| IP address | The sender's, once the sender clicks **Send**, unless the sender turned on Hide my IP on the page. | The link maker's, once the sender clicks **Send**, unless Floe Desktop has Hide my IP on. |
| Floe version | Nothing about the sender's. | With `floe send --to`, the link maker's Floe Desktop version when it differs from the sender's and looks like a release, for example `Peer version: desktop-v1.0.0`. The browser page shows none. |
| Names | Not the sender's: Floe has no accounts. | Not the link maker's: the link's label never leaves the PC that made it. |
| Files | The count and total size in the request, then each file's name as it arrives. No name shows before the drop is accepted. | Their own files, which ones arrived, and why a drop stopped, such as a full drive on the other side. |

Your [IP address](/docs/glossary#ip-address) can show your internet provider and roughly where you are.
Floe's server introduces the two computers and never receives the files. See
[Security and privacy](/docs/security-privacy).

<h2 id="report-a-link">
  Report a link
</h2>

**Report this link**, at the bottom of the card whenever you are choosing files, starts an email carrying the
link's id: the part before the `#`. It never carries the part after it, so a report cannot be used to send
files through the link.

On floe.one the email goes to Floe's maintainers, at the address in
[SECURITY.md](https://github.com/jannskiee/floe/blob/main/SECURITY.md), the one security reports use. On a
[self-hosted](/docs/glossary#self-hosted) server it goes to the address the person who runs that server
[set for reports](/docs/self-hosting/configuration#request-report-email). If they set none, the page shows no
**Report this link**.

<h2 id="what-the-page-shows">
  What the page shows
</h2>

| State | What you see | What to do |
| - | - | - |
| Ready, nothing picked | “SEND FILES THROUGH THIS LINK”, the drop area with **Choose files** and **Choose folder**, the Hide my IP check, and **Report this link**. | Pick files or folders. |
| Ready, files picked | An **Add more files** strip, the count, such as “3 FILES, 1.2 GB”, **Send 3 files** and **Clear**. | Click **Send**. |
| Connecting | “Connecting to their computer” | Wait. **Cancel** returns to your files. |
| Waiting | “Waiting for them to accept”, the minutes they have left, and a **Direct** or **Relay** [badge](/docs/glossary#badge) | Keep the page open. **Cancel** returns to your files. |
| Sending | For example “SENDING 2 OF 12”, the file's path, its progress, the speed, the time left, the badge, and the **ARRIVED** list | Keep the tab in front. **Cancel** asks first, then stops the drop. |
| Arrived | “ALL 12 FILES ARRIVED”, or “1 FILE ARRIVED”, then the size, the time taken and, when known, the route | Nothing more. The link is used up. |
| Stopped | One of the [messages](#messages) below, some with a button | Follow the message. The cards with a button are listed under the table. |

The Sending card also says "Keep this tab in front until the last file arrives." Long paths are shortened
in the middle there, so the end of the file name always shows, and the **ARRIVED** list scrolls.

Five stopped cards offer **Try again**, and your files stay selected:

* "Their computer is not connected right now"
* "Request links are turned off right now"
* "Request links are not available on this Floe server."
* "Couldn't connect to their computer. Nothing was sent."
* "Connection lost. Nothing was sent."

A decline, a missed answer and "Relay limit" offer **Back to files**. A card with no button stays until you
reload the page, and after a reload you pick your files again. Ask for a new link only when the message
says the link has ended or was already used, or tells you to.

When you switch to another tab or minimize the window, the tab's title shows the state instead:

* "Waiting for them to accept - Floe"
* "42% sent, 5 of 12 files - Floe", refreshed every 5 seconds
* "All 12 files arrived - Floe", or "1 file arrived - Floe"
* "Drop stopped - Floe", for every stop and every lost connection

When you come back to the tab, it reads "Send files - Floe" again.

Two links on the page open in a new tab, so your picked files are kept. "What is a request link?", under
the heading, opens this page. **Learn more** on the "Relay limit" card opens the size limit explainer.

<h2 id="messages">
  Messages
</h2>

A link that ended shows "This link has ended" or "This link has already been used" for about 24 hours.
After that, or sooner after a server restart, it reads "Their computer is not connected right now". That
is also what a link shows while the computer that made it is asleep or offline. If **Try again** keeps
bringing it back, ask for a new link.

These are the messages of the web app at floe.one. A web app that someone hosts themselves can run an older
version, where a few of them read differently: see
[What an older web app shows](/docs/self-hosting/operations#older-web-app-versions).

<h3 id="messages-on-the-senders-page">
  Before and while you send
</h3>

| Message | What it means | What to do |
| - | - | - |
| “Open in your browser”, with “Open the link in current Chrome or Edge on a computer.” and a box titled “To use this phone instead” | The link was opened inside another app's built-in browser, such as a chat app's. Nothing of the page loads until you continue. | Open the link in current Chrome or Edge on a computer, or follow the steps in the box to open it in your phone's own browser. See [Open in your browser](/docs/troubleshooting#open-in-your-browser). |
| “This link looks incomplete”, then “Copy the whole link again, including everything after the # sign.” | The link was cut short, often at the `#`. | Copy the whole link again from where you got it. |
| “This browser cannot send through Floe”, then “Open the link in current Chrome or Edge.” | This browser lacks WebRTC, the feature Floe uses to connect two computers. It is the one thing the page checks for. | Open the link in current Chrome or Edge. |
| “This browser cannot pick folders. Drag the folder in, or zip it first.” | This browser has no working folder picker, or a folder you dropped could not be read as one. | Do what the message says. |
| “Empty folders are not sent.” | A folder you dropped held an empty folder. The files are still selected. | Nothing. Zip the folder first if the empty folders matter. |
| “Relayed drops are capped at 2 GB. Turn off Hide my IP, or send 2 GB or less.” | With Hide my IP on, the drop goes through the relay, and your selection is over 2 GB. | Turn off Hide my IP, or click **Clear** and pick 2 GB or less. |
| “This drop has more than 10,000 files. Zip them first.” | A drop can hold up to 10,000 files. Nothing from that pick was added. | Zip them and send the archive. |
| “A file name or folder path is too long to send. Shorten it or zip it first.” | A file's folder path and name are too long for the one message that describes it, which holds 1,000 bytes. Nothing from that pick was added. | Do what the message says. |
| “Some files in this folder could not be read. Nothing was added.” | The browser could not read part of a folder you dropped, so none of it was added. | Check the folder, or zip it and send the archive. |
| “Their computer is not connected right now”, then “They may have closed Floe. Your files stay selected.” | Floe cannot reach the computer that made the link: it is asleep or offline, or Floe there stopped without closing the link. It also covers a link that never existed, or that ended more than about a day ago. | Click **Try again** once they have Floe open, or ask for a new link. |
| “This link has ended”, then “Ask them for a new link.” | The link was closed, or reached its end time, before anyone used it. There is no **Try again**. | Ask them for a new link. |
| “This link has already been used”, then “Ask for a new link.” | The link took its one drop, someone is sending through it now, or its maker declined a request and has not reopened the link. A link closed while a request was waiting reads the same. | Ask the person who made it for a new link. |
| “Request links are turned off right now” | The server has turned request links off. A link that was waiting for a sender when that happened has ended. | Click **Try again** later: your files stay selected. If the page then says "This link has ended", ask for a new link. |
| “Request links are not available on this Floe server.” | The server did not answer the page within 10 seconds, as a server older than request links does not. | Click **Try again**: your files stay selected. If it says the same, ask the person who made the link. |
| “Couldn't connect to their computer. Nothing was sent.” | The page could not reach Floe's server within 20 seconds, or the two computers did not connect within 75 seconds after it did. | Click **Try again**. If it keeps happening, a network on one side may be blocking the connection. |
| “This Floe server has no relay right now. Turn off Hide my IP to send directly.” | Hide my IP needs a relay, and the server's list has none. | Turn off Hide my IP to send directly. |
| “Couldn't check for a relay. Try again, or turn off Hide my IP to send directly.” | Hide my IP needs a relay, and the page could not get the server's relay list. The request failed, or the server was limiting requests from your network. | Click **Send** again: the page asks the server on every try. If it comes back, wait 1 minute, or turn off Hide my IP. |
| “Too many connections from this network. Trying again shortly.” | The server is limiting connections from your network for a moment. | Wait: the page tries again by itself. |
| “They declined. Nothing was sent.” | They clicked **Decline**. | Ask them before you send again. |
| “They did not answer in time. Nothing was sent.” | Nobody clicked **Accept** or **Decline** in time. The link stays open. | Ask them to be at their PC, then send again. |
| “Relay limit”, then “This connection needs a relay, and relayed drops are capped at 2 GB. Send 2 GB or less, or try another network.” | Your selection is over 2 GB, and the connection goes through the relay. Either the networks allow nothing else, or their Floe has Hide my IP on. Nothing was sent. | Click **Back to files**, then **Clear**, and pick 2 GB or less. Or try another network, or ask them to turn off Hide my IP. See [File size limits](/docs/how-it-works/2gb-limit). |
| “This computer may have slept. If the connection drops, the file that was moving starts over.” | While the tab was in the background, more than 30 seconds went missing from the page's clock, which usually means the computer slept. | Keep the computer awake until the last file arrives. The line stays for the rest of the visit. |
| “You stopped this drop.”, then how many files were saved | You clicked **Cancel** after they accepted, and then **Stop**. | Ask for a new link to send the rest. |
| “Their Floe needs an update.” | Their Floe is too old to work with this page. | Ask them to update Floe. |
| “Connection lost”, then for example “4 of 12 files arrived. Ask them for a new link to send the other 8.” | The connection dropped after they accepted, or the browser unloaded the tab during the drop. | Do what the message says. See [Keep the page open](#keep-the-page-open). |
| “Connection lost. Nothing was sent.” | The connection dropped before they accepted. | Click **Try again**. |
| “Could not read a file”, then the file's path and “may have been moved or renamed, or its drive disconnected.” | A file you picked could not be read when its turn came. On Windows, Chrome and Edge cannot read a file whose full path is over 260 characters. | Check the file. If they had not accepted yet, reload the page and send again through the same link. Otherwise ask for a new link to send the rest. |

A few notes on these:

* "Couldn't connect to their computer." also ends an attempt when the connection to Floe's server is lost
  before the two computers connect, and when their Floe reopens the link while you are connecting.
* "This link has already been used" can also mean several tries in a row were made through the link. If
  you had just tried a few times, wait 1 minute and reload the page before you ask for a new link.
* After a failed or canceled attempt, a new one can stay on "Connecting to their computer" for up to 45
  seconds. The page retries every 3 seconds while the server frees the place your last attempt held.

<h3 id="when-their-floe-stops-the-drop">
  When their Floe stops the drop
</h3>

The page shows one of these messages, then a line with how many files were saved, then the files that
arrived under **ARRIVED**. The line reads, for example, "4 of 12 files were saved." For a single file it
reads "1 of 1 file was saved.", and when nothing was saved, "Nothing was sent."

| Message | What it means | What to do |
| - | - | - |
| “Their computer ran out of space” | Their save drive filled up, or the next file would have left it with less than the 2 GB it has to keep free. | Ask them to free space, then ask for a new link. |
| “Their computer could not save a file” | Windows refused a write on their side. | Ask them to check their save folder. |
| “A file changed or was damaged on the way, so their Floe deleted it”, and after the count “Ask them for a new link to send the rest.” | A file's SHA-256 did not match on their side. | Do what the message says. |
| “Relayed drops are capped at 2 GB”, with “Nothing was sent. Send 2 GB or less.” in place of the count when nothing was saved | Their Floe found the drop going through the relay and past 2 GB. | Send 2 GB or less, or ask them to turn off Hide my IP. |
| “A file name or folder path is too long for their computer”, and after the count “Shorten it or zip it first.” | A file's name or path was too long, or its folders too deep, to save on their side. One long file name with no folder is enough. | Do what the message says. |
| “A file is too large for the drive they save to” | Their save drive cannot hold a file that large. | Ask them to save to another drive. |
| “Their computer blocked saving a file” | Their Floe could not move a finished file into place, after 5 minutes of retries. The complete file stays there with a `.part` ending. | Ask them about that file before you send it again. |
| “More data arrived than they accepted”, and after the count “If files changed after you chose them, ask them for a new link.” | Your browser sent more than the count and size they accepted. | Do what the message says. |
| “They stopped this drop.” | They clicked **Cancel drop**, or closed the link or quit Floe while your request was waiting. | Ask them before you send again. |
| “This drop reached the 24-hour limit” | A single drop stops at 24 hours. | Ask for a new link and send fewer files. |
| “The drop stopped on their computer.” | Their Floe stopped the drop for another reason. | Ask them what happened. |

<h2 id="if-something-goes-wrong">
  If something goes wrong
</h2>

* "Their computer is not connected right now": Floe has to be open on their PC, awake and online. See
  [Troubleshooting](/docs/troubleshooting#their-computer-is-not-connected-right-now).
* "This link has already been used": a link takes one drop, so ask for a new one. See
  [Troubleshooting](/docs/troubleshooting#this-link-has-already-been-used).
* "They did not answer in time. Nothing was sent.": they have 9 minutes 45 seconds to answer. See
  [Troubleshooting](/docs/troubleshooting#they-did-not-answer-in-time).


## Related topics

- [Request links: let someone send files to your PC](/docs/desktop/request-links.md)
- [floe send command](/docs/cli/send.md)
- [Send files peer-to-peer with Floe](/docs/introduction.md)
- [Send your first file](/docs/quickstart.md)
- [Send files from your browser](/docs/web-app/sending.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.