繁体   English   中英

如何从多输入中的FileReader函数中获取文件名?

[英]How can I get the filename from the FileReader function in a Multiple Input?

我有以下代码:

<input type="file" multiple='multiple'>
<div id="thumbs"></div>

<script type="text/javascript">
    $('input[type="file"]').change(function() {
    $('#thumbs').html('');
    $.each(this.files, function() {
    readURL(this);
 })
});

function readURL(file) {
    var reader = new FileReader();
    reader.onload = function(e) {
    $('#thumbs').append('<img src="' + e.target.result + '" width="20%">')
    $('#quantity').text(i)
  }
  reader.readAsDataURL(file);
}
</script>

这是一个多上传输入。 当我选择“x”图片时,它会为它们创建缩略图。 这完全有效,但我想知道如何获取文件名(如果图片名为“sun.jpg”,我想得到“sun”),并将它们附加到图片中。 我试过这个:

$('#thumbs').append('<img src="' + e.target.result + '" width="20%"><p>'+e.name+'</p>')

但是e.nameundefined

这是一切的小提琴: https//jsfiddle.net/ugs6rzqx/1/

任何帮助,将不胜感激。 谢谢。

有关该文件的详细信息,FileReader的事件对象很少。 在回调内部,您可以访问普通的File对象,该对象仍然具有名称,日期和大小等所有文件元信息。

您的代码只需要使用file而不是e

$('#thumbs').append('<img src="' + e.target.result + '" width="20%"><p>'+file.name+'</p>')

如果你只是想要这个名字:

$('#thumbs').append('<img src="' + e.target.result + '" width="20%"><p>'+file.name.split('.')[0]+'</p>')

工作小提琴: https//jsfiddle.net/robertrozas/ugs6rzqx/3/

采用

file.name

这是你的小提琴: https//jsfiddle.net/ugs6rzqx/2/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM