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;
});
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.