У js нет доступа к файловой системе.
Только через проводник.
Поэтому варианта только 2.
Первый - связать какую то кнопку со скрытым input type file, а потом отправлять его значение. Но Вы пишите чтобы не был связан, и тогда..
Второй - сгенерировать бинарный(или такой, какой примет сервер. Скажем, base64) файл самостоятельно на js.
Я тоже так думал, но тут один товарищ на днях написал, что смог загрузить файл непосредственно из ФС при помощи XHR. Я не знаю врет он или это правда, но допускаю, что если страница текущая является localhost это действительно возможно. Хотелось бы проверить, вот только у меня Linux( А для чистоты эксперимента нужна бы винда.
Если у вас Windows и есть немного времени, можете проверить идею? Попробовать скачать файл с рабочего стола по ссылке типа такой: file:///C:/Users/uzaza/Desktop/...
При этом, чтобы текущая страница была с localhost + не проверять коды ответа.
Все достаточно просто, прячете на странице невидимый input и нажимайте его при помощи JavaScript, когда юзер кликает какой-нибудь обозначенный вами другой элемент.