Быстрая загрузка файлов на сервер

Часто бывает что нужно поделиться с человеком файлом и каждый раз приходиться повторять однотипные действия, ждать, видеть раздражительную рекламу на файлообменниках… Почему бы не автоматизировать это насколько возможно? Это должно обходится парой кликов мышью.
Так как мой файловый менеджер nautilus (стандартный убунтовский), для того чтобы добавить действие в его контекстное меню я воспользовался утилитой Параметры->Настройка действий Nautilus

Добавил туда действие с соответствующим названием (Залить на фтп) и настроил его таким образом, чтобы оно применялось только к 1 файлу и при вызове запускало мой смехотворно простой bash скрипт:

#!/bin/bash
firefox "http://localhost/myftpUploader/?p=$2";
Слабые знания bash сценариев мне не позволили написать в этом скрипте все что я хотел сделать и я переложил это на php. Вот код, который находится в http://localhost/myftpUploader/index.php
<?php

/**
 * Скрипт для загрузки файлов на FTP
 */

$host = 'myftpsite.com';
$login = 'admin1';
$password = '1qwer5768asdf';

if (!isset($_GET['p']))
    die('p=?');
$path = $_GET['p'];

//часть ссылки, одинаковая для всех загруженных файлов
$url = 'http://myftpsite.com/files/';
//извлекаем имя файла
$pathE1 = explode('/', trim($path));
//если оно английскими буквами, цифрами и некотороми спецсимволами, то его можно не менять
if (preg_match('#[a-z_.0-9+-]*#i', $pathE1[count($pathE1) - 1]))
    $newName = $pathE1[count($pathE1) - 1];
else {//иначе
    //создаем случайное имя файла
    $newName = generateRandomString();
    //определяем тип файла
    $pathE = explode('.', trim($path));
    if (strlen($pathE[count($pathE) - 1]) < 5)
        $newName .= '.' . $pathE[count($pathE) - 1];
}
//подключаемся к фтп
$connect = ftp_connect($host);
if (!$connect) {
    die("Ошибка соединения");
} else {
    if (!ftp_login($connect, $login, $password))
        die('логин или пароль не подходят');
    ftp_put($connect, $newName, $path, FTP_BINARY);
    ftp_quit($connect);
    //возвращаем ссылку
    $link = $url . $newName;
    echo "<div style='margin:50px;'><a href='$link'>$link</a></div>";
}

//функция генерирует случайную строку, взята из инета
function generateRandomString($length = 8) {
    $chars = 'abdefhiknrstyzABDEFGHKNQRSTYZ23456789';
    $numChars = strlen($chars);
    $string = '';
    for ($i = 0; $i < $length; $i++)
        $string .= substr($chars, rand(1, $numChars) - 1, 1);
    return $string;
}

Локальный сервер у меня и так не выключается, так что не важно какая программа будет решать данную задачу. К тому же на пхп можно тему развить до любых размеров.
Небольшое примечании: для этого всего нужен свой хостинг с фтп. Я специально создавал учетную запись к фтп с особыми правами и доступом только в 1 (выделеный под это) каталог.
Как работает скрипт: нажимая в контекстном меню мы запускаем браузер(у кого он был выключен), который запускает php сценарий локального сервера. Локальный сервер берет путь к файлу из строки URL (методом GET) и подключается к удаленному FTP серверу, после чего загружает на него файл. Ссылка на скачивание выводится в браузер. Это не обязательно firefox, если вы предпочитаете другой браузер — замените название в bash сценарии.