A input do arquivo de formulário é desmarcada quando atualizar

Eu tenho um formulário html com alguma input de texto e uma input de arquivo (logotipo da imagem).

Agora, se houver um erro com uma das inputs de texto (como o comprimento é inválido) quando o usuário clicar no botão de envio [cliente-> servidor (php) -> cliente], o conteúdo da input do arquivo é apagado, o que é irritante !

Eu estabeleço outros textos de input com os últimos valores quando a página se envia com um erro, mas não consigo uma input de arquivo. Tentei definir o valor de input do arquivo com document.getElementsByName('logo')[0].value; para configurá-lo em um valor oculto, mas eu obtive o caminho “C: \ fakepath \ random-0690.JPG” … isso é tão chocante, eu sei que é por motivos de segurança, mas é chocante …

Como eu posso resolver isso? Obrigado.

Não é possível. Você não pode definir remotamente o valor de uma input de arquivo como uma medida básica de segurança. Se você puder, então seria trivial fazer e roubar qualquer arquivo que você deseja da máquina do usuário.

Não há nada de chocante sobre isso. Viva com ele, ou divirta-se com seus arquivos roubados.

Encontrei a resposta!

Isso é simples, criei uma chamada AJAX que envia o conteúdo do formulário e valida se tudo está bem. Em seguida, se houver erros, exiba estes (e ele manterá os valores e os anexos de arquivos no formulário) .. Else: Envie o formulário de postagem e o arquivo anexado.