如何在JavaScript中获取对象的文件名?

如何在JavaScript中获取对象的文件名?,javascript,html,Javascript,Html,我正在使用一个应用程序,它可以让用户在服务器上上传某些文件。这很好。但是现在我想通过JavaScript检查文件的结尾,以确保用户只能上传特定格式的文件。例如:*.txt 因此,我想读取文件名并检查结尾。我的问题是,我不知道如何访问文件名。我知道通过document.getElementById('Field').value->获取字符串的值非常简单 但是如何访问文件的文件名呢?我需要用类似fileReader的东西将它们转换成文件吗?难道没有更简单的方法来获取文件名吗 更新:HTML5解决方案

我正在使用一个应用程序,它可以让用户在服务器上上传某些文件。这很好。但是现在我想通过JavaScript检查文件的结尾,以确保用户只能上传特定格式的文件。例如:*.txt

因此,我想读取文件名并检查结尾。我的问题是,我不知道如何访问文件名。我知道通过document.getElementById('Field').value->获取字符串的值非常简单

但是如何访问文件的文件名呢?我需要用类似fileReader的东西将它们转换成文件吗?难道没有更简单的方法来获取文件名吗

更新:HTML5解决方案不适合我。在没有文件API的情况下,没有其他方法可以做到这一点吗?

用于访问文件详细信息

// fileInput is a HTMLInputElement: <input type="file" multiple id="myfileinput">
var fileInput = document.getElementById("myfileinput");

// files is a FileList object (simliar to NodeList)
var files = fileInput.files;

for (var i = 0; i < files.length; i++) {
  alert("Filename " + files[i].name);
}
//fileInput是一个HTMLInputElement:
var fileInput=document.getElementById(“myfileinput”);
//文件是一个文件列表对象(类似于节点列表)
var files=fileInput.files;
对于(var i=0;i
有两种方法

您可以检查您已经指出的输入值,或者如果您的浏览器支持HTML5文件API,那么您可以使用它来确定文件名

document.getElementById('file').addEventListener('change', function(e) {
    console.log(e.target.files[0].name); //myFile.txt
});
使用此方法,您甚至可以确定MIME类型来检查内容类型

document.getElementById('file').addEventListener('change', function(e) {
    var type = e.target.files[0].type;
    if(type === 'text/plain') //File contains plain text
});

你说“我把上传的文件作为js对象”是什么意思?通常,在进行任何上传之前,Javascript会在浏览器中运行。您正在使用Node.js吗?您是否尝试使用
document.getElementById('input\u type\u file').value
获取文件名?没错,我删除了这句话:-)document.getElementById('input\u type\u file')。value不起作用。这真的有效吗?我不理解它与字符串一起工作,然后它只返回字符串。但是如果它是一个文件,它是否应该返回文件名作为值?