style disabled data attribute atributos atributo agregar jquery file attr

disabled - JQuery-Atributos de archivo



jquery get class value (5)

El atributo input.files es una característica de HTML5. Es por eso que algunos navegadores no devuelven nada. Simplemente agregue un input.value anterior input.value (cadena) si los files no existen.

referencia: http://www.w3.org/TR/2012/WD-html5-20121025/common-input-element-apis.html#dom-input-files

Intentar acceder a los atributos del archivo desde un campo de entrada después de seleccionar un archivo. Intenté esto pero obtuve el error ''archivo no definido''

var file = $("#uploadedfile").prop("files")[0]; var fileName = file.fileName; var fileSize = file.fileSize; alert("Uploading: "+fileName+" @ "+fileSize+"bytes");


Para obtener los nombres de archivo, use:

var files = document.getElementById(''inputElementID'').files;

Usando jQuery (como ya lo eres) puedes adaptarlo a lo siguiente:

$(''input[type="file"][multiple]'').change( function(e){ var files = this.files; for (i=0;i<files.length;i++){ console.log(files[i].fileName + '' ('' + files[i].fileSize + '').''); } return false; });

Demostración de JS Fiddle .


Sólo inténtalo

var file = $("#uploadedfile").prop("files")[0]; var fileName = file.name; var fileSize = file.size; alert("Uploading: "+fileName+" @ "+fileSize+"bytes");

Funciono para mi


Si #uploadedfile es una entrada con tipo "archivo":

var file = $("#uploadedfile")[0].files[0]; var fileName = file.name; var fileSize = file.size; alert("Uploading: "+fileName+" @ "+fileSize+"bytes");

Normalmente esto dispararía en el evento de cambio, así:

$("#uploadedfile").on("change", function(){ var file = this.files[0], fileName = file.name, fileSize = file.size; alert("Uploading: "+fileName+" @ "+fileSize+"bytes"); CustomFileHandlingFunction(file); });

EDITAR: Kevin tiene razón en su comentario sobre la propiedad de los archivos, ¡editado!

EDITAR DE NUEVO: La sintaxis correcta no es

filename = this.files[0].filename;

pero

filename = this.files[0].name; filesize = this.files[0].size;

Agregar un Fiddle que debería funcionar en el navegador cruzado: http://jsfiddle.net/eq3Qv/


<form id = "uploadForm" name = "uploadForm" enctype="multipart/form-data"> <label for="uploadFile">Upload Your File</label> <input type="file" name="uploadFile" id="uploadFile"> </form> <script> $(''#uploadFile'').change(function(){ var fileName = this.files[0].name; var fileSize = this.files[0].size; var fileType = this.files[0].type; alert(''FileName : '' + fileName + ''/nFileSize : '' + fileSize + '' bytes''); }); </script>

Nota: para obtener el nombre del archivo que está subiendo significa usar el método jquery val ().

Por ejemplo:

var fileName = $(''#uploadFile'').val();

He comprobado este código anterior antes de publicar, funciona perfectamente.