Novo em JS.
Estou tentando verificar se o elemento de entrada do arquivo está vazio ao enviar o formulário com jQuery / JavaScript. Eu passei por um monte de soluções e nada está funcionando para mim. Estou tentando evitar o /c/fakepath
(a menos que não haja outra opção)
<input type="file" name="videoFile" id="videoUploadFile" />
Isso não funciona:
var vidFile = $("#videoUploadFile").value;
A única maneira de obter o nome do arquivo é usando o seguinte:
var vidFile = document.getElementById("videoUploadFile").files[0].name;
Se não houver nenhum arquivo disponível, o código gerará um erro:
não pode ler o nome da propriedade de indefinido
o que faz sentido porque a matriz não está definida. mas não consigo descobrir como fazer qualquer tratamento de erros com isso.
Como faço para obter corretamente o elemento de entrada do arquivo videoUploadFile
, verificar se está vazio e lançar uma mensagem de erro se estiver vazio?
javascript
jquery
html
user3753569
fonte
fonte
.files.length
?var files = $('#formbody').find('input[type=file]').filter(function() { return $(this)[0].files.length > 0; });
Respostas:
Basta verificar a propriedade length of files , que é um objeto FileList contido no elemento de entrada
fonte
( document.getElementById("videoUploadFile").files.length === 0 )
Aqui está a versão jQuery dele:
fonte
$('#videoUploadFile').get(0)
o mesmo que,$('#videoUploadFile')[0]
mas talvezget()
faça algumas verificações de sanidadePara verificar se o arquivo de entrada está vazio ou não usando a propriedade de comprimento do arquivo,
index
deve ser especificado da seguinte forma:fonte
Perguntas: como verificar se o arquivo está vazio ou não?
Resp: Eu resolvi esse problema usando este código Jquery
fonte
Sei que estou atrasado para a festa, mas pensei em adicionar o que acabei usando para isso - que é simplesmente verificar se a entrada de upload do arquivo não contém um valor verdadeiro com o operador not & JQuery assim:
Observe que, se estiver em um formulário, você também pode envolvê-lo com o seguinte manipulador para evitar que o formulário seja enviado:
fonte