не смог себе эти функции перенести в js, знания js слабы.
3. В процессе создания вопроса пользователь Сервиса обязан:
3.1. Указывать только теги, имеющие непосредственное отношение к вопросу.
Здесь форум программистов насколько заявлено
popupForNewItem
, которая добавляет eventListener на body. Соответственно, чем больше раз будет вызвана модалка, тем больше раз повторно отработает один и тот же код.
Только через проводник.
Поэтому варианта только 2.
Первый - связать какую то кнопку со скрытым input type file, а потом отправлять его значение. Но Вы пишите чтобы не был связан, и тогда..
Второй - сгенерировать бинарный(или такой, какой примет сервер. Скажем, base64) файл самостоятельно на js.