如何从多输入中的 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>
这是一个多重上传输入。当我 select 'x' 图片时,它会为它们创建缩略图。这非常有效,但我想知道如何获取文件名(如果图片名为 "sun.jpg",我想获取 "sun"),并将它们附加到图片下方。我试过这个:
$('#thumbs').append('<img src="' + e.target.result + '" width="20%"><p>'+e.name+'</p>')
但是 e.name
是 undefined
。
这是所有内容的 fiddle:https://jsfiddle.net/ugs6rzqx/1/
如有任何帮助,我们将不胜感激。谢谢。
FileReader 的事件对象在有关文件的详细信息方面很薄弱。
在回调中,您可以访问普通的 File 对象,它仍然具有所有文件元信息,如名称、日期和大小。
您的代码只需要使用 file
而不是 e
$('#thumbs').append('<img src="' + e.target.result + '" width="20%"><p>'+file.name+'</p>')
使用
file.name
这是你的fiddle:https://jsfiddle.net/ugs6rzqx/2/
如果你只想要名字:
$('#thumbs').append('<img src="' + e.target.result + '" width="20%"><p>'+file.name.split('.')[0]+'</p>')
工作fiddle:https://jsfiddle.net/robertrozas/ugs6rzqx/3/
我有以下代码:
<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>
这是一个多重上传输入。当我 select 'x' 图片时,它会为它们创建缩略图。这非常有效,但我想知道如何获取文件名(如果图片名为 "sun.jpg",我想获取 "sun"),并将它们附加到图片下方。我试过这个:
$('#thumbs').append('<img src="' + e.target.result + '" width="20%"><p>'+e.name+'</p>')
但是 e.name
是 undefined
。
这是所有内容的 fiddle:https://jsfiddle.net/ugs6rzqx/1/
如有任何帮助,我们将不胜感激。谢谢。
FileReader 的事件对象在有关文件的详细信息方面很薄弱。 在回调中,您可以访问普通的 File 对象,它仍然具有所有文件元信息,如名称、日期和大小。
您的代码只需要使用 file
而不是 e
$('#thumbs').append('<img src="' + e.target.result + '" width="20%"><p>'+file.name+'</p>')
使用
file.name
这是你的fiddle:https://jsfiddle.net/ugs6rzqx/2/
如果你只想要名字:
$('#thumbs').append('<img src="' + e.target.result + '" width="20%"><p>'+file.name.split('.')[0]+'</p>')