Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在IMG html属性中获取图像的大小_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何在IMG html属性中获取图像的大小

Javascript 如何在IMG html属性中获取图像的大小,javascript,jquery,html,Javascript,Jquery,Html,我看到这段代码是为了获得图像的大小(KB,MB)。但这段代码是在更改后从按钮获取数据的。这个代码能适用于我的问题吗?。或者是否有其他方法可以使用javascript直接获取图像的大小 $(函数(){ $(“#btnClick”).change(函数(e){ var a=e.target.files[0]; 警报(解析浮点(a.size/1024).toFixed(2)+“KB”); }); }); 从响应blob()没有直接的方法) .然后(blob=>{ 控制台日志(blob.size);

我看到这段代码是为了获得图像的大小
(KB,MB)
。但这段代码是在更改后从按钮获取数据的。这个代码能适用于我的问题吗?。或者是否有其他方法可以使用javascript直接获取图像的大小

$(函数(){
$(“#btnClick”).change(函数(e){
var a=e.target.files[0];
警报(解析浮点(a.size/1024).toFixed(2)+“KB”);
});
});

响应blob()没有直接的方法)
.然后(blob=>{
控制台日志(blob.size);
});
};

响应blob()没有直接的方法)
.然后(blob=>{
控制台日志(blob.size);
});
};

通过传递url,您可以使用此函数获取任何文件的文件大小:

function get_filesize(url, callback) {
    var xhr = new XMLHttpRequest();
    xhr.open("HEAD", url, true); // Notice "HEAD" instead of "GET",
                             //  to get only the header
    xhr.onreadystatechange = function() {
    if (this.readyState == this.DONE) {
        callback(parseInt(xhr.getResponseHeader("Content-Length")));
    }
};
    xhr.send();
}  
然后像这样使用它:

get_filesize("https://upload.wikimedia.org/wikipedia/commons/1/1e/Stonehenge.jpg", function(size) {
     alert("The size of image is: " + size + " bytes.");
});
请在此处尝试:

通过传递url,您可以使用此函数获取任何文件的文件大小:

function get_filesize(url, callback) {
    var xhr = new XMLHttpRequest();
    xhr.open("HEAD", url, true); // Notice "HEAD" instead of "GET",
                             //  to get only the header
    xhr.onreadystatechange = function() {
    if (this.readyState == this.DONE) {
        callback(parseInt(xhr.getResponseHeader("Content-Length")));
    }
};
    xhr.send();
}  
然后像这样使用它:

get_filesize("https://upload.wikimedia.org/wikipedia/commons/1/1e/Stonehenge.jpg", function(size) {
     alert("The size of image is: " + size + " bytes.");
});
请在此处尝试:

你能更详细地说明你的问题吗?目前没有任何意义。:)你想显示已加载到
标记的图像的大小吗?你是说你有
并且想获得该图像文件的大小吗?@nnnnnn是的,你完全正确。也许你可以把你的问题说得更清楚些。我知道它在问题标题中,但在开始讨论文件输入之前,在问题正文中说出来。令人困惑的是,问题中显示的唯一HTML不包含
。跨来源问题可能可以通过[Cross origin XMLHttpRequest]解决(或者您可以更详细地说明您的问题吗?目前没有意义。:)你想显示已加载到
标记的图像的大小吗?你是说你有
并且想获得该图像文件的大小吗?@nnnnnn是的,你完全正确。也许你可以把你的问题说得更清楚些。我知道它在问题标题中,但在开始讨论文件输入之前,在问题正文中说出来。令人困惑的是,问题中显示的唯一HTML不包含
。跨源问题可以通过[Cross origin XMLHttpRequest]解决(或者如何使用此代码?。是否需要将其放入函数中?。@KiRa,这取决于您。在这里,我正在等待映像已加载资源,以便获取使用HTTP缓存,而不是向服务器发出新请求,但您可以按您的愿望执行。您甚至可以先获取此数据,然后将
设置为
URL.createObjectURL(blob)
。在这里冒昧地演示了@Kaido的答案。请记住,
跨源XMLHttpRequest
类型不支持这一点。需要从
服务器端允许它。有关结果,请参阅控制台:)@Kaido我试图将函数放入其中,但得到了一个error@KiRa,此错误是否有名称或小说明?请注意,您不必强制使用fetch API,您也可以对较旧的浏览器使用XHR,有一个
responseType='blob'
参数。此答案中的代码只是一个广泛的概念证明,您必须编写自己的版本。但主要思想是,您不能直接从
标记执行此操作。我如何使用此代码?我是否需要将其放入函数中?@KiRa,这取决于您。我正在等待映像加载资源,以便提取使用HTTP缓存,而不是向服务器发出新请求,但您可以按照自己的意愿执行h、 您甚至可以先获取这些数据,然后将
设置为
URL.createObjectURL(blob)
。在这里随意演示了@kaido的答案。请记住,
跨源XMLHttpRequest
类型不支持这一点。它需要从
服务器
端允许。有关结果,请参阅控制台。:@kaido我尝试将其放入函数中,但得到了一个error@KiRa,此错误是否有名称或小说明?请注意,您不必强制使用fetch API,也可以对较旧的浏览器使用XHR,有一个
responseType='blob'
参数。这个答案中的代码只是一个广泛的概念证明,您必须编写自己的版本。但主要的想法是,你不能直接从一个
标签上做这件事。与其给出负利率,不如去做一些研究!此函数返回正确的大小!对于文件,我们有两种不同的大小:大小和磁盘大小。此函数返回磁盘上的大小!阅读更多:你的答案非常好!我不知道为什么那个人投了你的反对票,但我只是投了你的反对票来纠正他/她的错误。祝你过得愉快^^与其给出负利率,不如去做些调查!此函数返回正确的大小!对于文件,我们有两种不同的大小:大小和磁盘大小。此函数返回磁盘上的大小!阅读更多:你的答案非常好!我不知道为什么那个人投了你的反对票,但我只是投了你的反对票来纠正他/她的错误。祝你今天愉快^^