Javascript 如何使用URL.createObjectURL获取本地文件名?

Javascript 如何使用URL.createObjectURL获取本地文件名?,javascript,image,object,Javascript,Image,Object,我正在使用createObjectURL获取图像的属性,例如宽度和高度。如何获取本地文件名 loadURL = function (event) { var output = document.getElementById('myimage'), output.src = URL.createObjectURL(event.target.files[0]); output.onload = function () { document.getEl

我正在使用
createObjectURL
获取图像的属性,例如宽度和高度。如何获取本地文件名

loadURL = function (event) {
    var output = document.getElementById('myimage'),
        output.src = URL.createObjectURL(event.target.files[0]);
    output.onload = function () {

        document.getElementById("urlinput").value = output. ? ? ? ? ?

        document.getElementById("width").value = output.width;
        document.getElementById("height").value = output.height;
    }
}

如何从中获取文件名?我尝试了
filename
src
name
。我知道我可以从相应的
input type=“file”
中获取值,但我想从上面的对象(output.??)中获取值,但是如何获取呢?

URL.createObjectURL
在最终返回的值中没有任何该信息。它返回字符串类型的URL。默认情况下,
img
元素也不会,但如果
event.target
是file类型的输入,则可以从中获取文件名

loadURL = function (event) {
    var output = document.getElementById('myimage'),
        output.src = URL.createObjectURL(event.target.files[0]),
        fileName = event.target.files[0].name;
    output.onload = function () {

        document.getElementById("urlinput").value = output. ? ? ? ? ?

        document.getElementById("width").value = output.width;
        document.getElementById("height").value = output.height;
    }
}
小提琴:

小提琴代码

HTML:


编辑:对不起,我想我错过了最后一部分,你说你知道你可以从输入中获得它。如果您的
document.getElementById('myimage')
是一个没有文件名的img标记,则无论哪种方式。唯一的选择是,如果
src
具有解析该url的url,但从您的代码来看,似乎
img
标记存在,但没有
src
,直到将文件添加到输入中,然后以编程方式设置
src
。如果我错了,请改正。为什么您不想从可用的地方获取它?为什么只从
myimage
元素开始?

我总是记下我“应该”能做但不确定如何做的事情。我只是很惊讶,如果这个对象是从一个输入文件创建的,那么这个对象就不包含对文件名的引用。谢谢您的回答。是的,但是
URL.createObjectURL
返回一个URL。不是一个物体。它返回一个字符串。您传递给它以创建该url的任何内容都不属于最终返回值。但无论如何…没问题!!欢迎你回答。
<input id="test" type="file" />
document.getElementById('test').addEventListener('change',
    function (event) {
        alert(event.target.files[0].name);
    }
);