Если картинка лежит внутри вашего сайта, то вы можете вставить его в поле input следующим образом:
async function pasteFile(file_link, input_selector) {
var blob = { type: 'html' };
do {
try {
blob = await (await fetch(file_link)).blob();
if (blob.type.includes('html')) {
console.log('Не удалось скачать файл с сервера, вместо файла получена html-страница', blob);
await new Promise(function(s) { setTimeout(s, 1000); });
}
}
catch (err) {
console.log('Не удалось скачать файл с сервера', err);
await new Promise(function(s) { setTimeout(s, 1000); });
}
} while (blob.type.includes('html'));
var dt = new DataTransfer();
dt.items.add(new File([blob], file_link.split('/').pop(), { type: blob.type }));
document.querySelector(input_selector).files = dt.files;
console.log('Файл успешно вставлен в поле', dt.files);
}
Вам необходимо вызвать функцию
pasteFile(file_link, input_selector) передав первым параметром ссылку на картинку, а вторым параметром CSS-селектор указывающий на поле input в которое требуется воткнуть картинку.
P. S. Так обычно не делают. Выше я привел хоть и рабочий, но не правильный вариант решения проблемы. Правильный вариант решения проблемы предполагает, что вам необходимо переписать серверную часть вашего сайта таким образом, чтобы не пришлось через формы отправлять картинки дважды, особенно когда они уже есть на сервере.