JQuery – 文件属性

选择文件后,尝试从输入字段访问文件属性。 试过这个,但得到错误’文件未定义’

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

如果#uploadedfile是类型为“file”的输入:

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

通常这会触发change事件,如下所示:

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

编辑:凯文在他关于文件属性的评论中是正确的,编辑!

再次编辑:正确的语法不是

 filename = this.files[0].filename; 

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

添加应该跨浏览器工作的小提琴: http : //jsfiddle.net/eq3Qv/

 

注意:要获取上传文件名,则使用jquery val()方法。

对于Ex:

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

我在post之前检查了上面的代码,它完美无缺。

要获取文件名,请使用:

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

使用jQuery(因为你已经是),你可以将其改编为以下内容:

 $('input[type="file"][multiple]').change( function(e){ var files = this.files; for (i=0;i 

JS小提琴演示 。

试一试

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

它对我有用

input.files属性是HTML5function。 这就是为什么有些浏览器不会返回任何东西。 如果files不存在,只需添加一个回input.value普通的旧input.value (字符串)。

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