如何从Javascript FileReader获取文件名?

我正在使用Javascript FileReader在浏览器中加载图像:

e = e.originalEvent; e.dataTransfer.dropEffect = 'copy'; this.documentFile = e.dataTransfer.files[0]; var reader = new FileReader(); reader.onloadend = function () { if (reader.result) { console.log(reader); $('#theImage').attr('src', reader.result); } }; reader.readAsDataURL(this.documentFile); 

这很好用。 我现在想获得图像的原始文件名,但我不知道如何在互联网上查找我也找不到任何东西?

有谁知道如何通过FileReader获取文件名? 欢迎所有提示!

这不是最好的解决方案,但它对我有用。

 var reader = new FileReader(); reader.fileName = file.name // file came from a input file element. file = el.files[0]; reader.onload = function(readerEvt) { console.log(readerEvt.target.fileName); }; 

不是最好的答案,而是一个有效的答案。

如果您希望文件名为变量:

 var filename; var reader = new FileReader(); reader.onloadend = function () { if (reader.result) { console.log(reader); $('#theImage').attr('src', reader.result); filename = reader.result; } }; reader.readAsDataURL(this.documentFile); 

如果您希望它在函数中运行:

 var reader = new FileReader(); reader.onloadend = function () { if (reader.result) { console.log(reader); $('#theImage').attr('src', reader.result); myfunctionafter(reader.result); } }; reader.readAsDataURL(this.documentFile); 

如果你想在另一个函数中获取信息:

 var reader = new FileReader(); var filename = reader.onloadend = function () { if (reader.result) { console.log(reader); $('#theImage').attr('src', reader.result); return reader.result; } }; reader.readAsDataURL(this.documentFile); 

当您的reader.onloadend可能在您运行它的函数之前完成时,可能会出现问题。 然后你应该做两个函数并触发myfunctionafter(reader.result); 从内部

或者你可以简单地获得src

 var filename = $('#theImage').attr('src');