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);
}
);