[JavaScript] Можно ли узнать вес картинки?
А можно ли узнать, что у пользователя лежит в %appdata%\.purple\accounts.xml, с помощью JavaScript?
Браузер ведь знает.
Браузер ведь знает.
Нахрена тебе это знать-то?
Это не тот size 

А подробнее?
size - это размеры картинки, например, 100*100 пикселей.
А тут человек какого-то хрена хочет узнать, сколько весит эта картинка как файл, в байтах.
А тут человек какого-то хрена хочет узнать, сколько весит эта картинка как файл, в байтах.
можно
Можно ли узнать вес картинки на странице JavaScript?1) Если это форма аплоада, то лучше проверять вес на стороне сервера.
2) Если картинка грузится с какого-то урла.
В IE есть свойство fileSize, размер картинки в байтах, в Опере, FF и скорее всего во всех остальных браузерах его нет.
<img alt="blah" onload="alert(this.fileSize + ' bytes')" src ="/foo/bar.gif" />
3) Если картинка на твоем сайте.
Можно сделать HEAD-запрос с помощью XMLHttpRequest. Работать будет в большинстве браузеров. Ботай Ajax. Ключевые методы open и getResponseHeader. Примерно так:
<script type="text/javascript">
var XmlHttpRequestObject;
function GetImageFilesize(url)
{
XmlHttpRequestObject = null;
try
{
XmlHttpRequestObject = new XMLHttpRequest;
}
catch (ex)
{
try
{
XmlHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (ex)
{
}
}
if (XmlHttpRequestObject)
{
XmlHttpRequestObject.onreadystatechange = function {
if (XmlHttpRequestObject.readyState == 4)
{
alert(XmlHttpRequestObject.getResponseHeader("Content-Length") + ' bytes');
}
};
XmlHttpRequestObject.open("HEAD", url, true);
XmlHttpRequestObject.send(null);
}
else
{
alert("Your browser suck!");
}
}
</script>
Это конечно спасибо, но мне не много не то хочется.
Картинка и так грузится аяксом. Но хотелось бы отсекать сразу ненужный запрос и говорить юзеру "размер картинки превысил максимально допустимое значение" без ненужного запроса к серверу и загрузки этой картинки (всё таки траффик и время).
В любом случае на сервер-сайд будет ещё одна проверка, но хотелось бы это сделать на клиенте
Картинка и так грузится аяксом. Но хотелось бы отсекать сразу ненужный запрос и говорить юзеру "размер картинки превысил максимально допустимое значение" без ненужного запроса к серверу и загрузки этой картинки (всё таки траффик и время).
В любом случае на сервер-сайд будет ещё одна проверка, но хотелось бы это сделать на клиенте
Нельзя спросить HEAD запрос, а у ответа на клиенте прочитать Cotent-Length (или любой другой заголовок)?
Ну и неправильная задача — я всегда смогу посмотреть твой js и написать свой без этой проверки. Так что проверки на сервере достаточно.
Ну и неправильная задача — я всегда смогу посмотреть твой js и написать свой без этой проверки. Так что проверки на сервере достаточно.
вот какая-то хрень, аж прогрессбары рисует, хз как она работает
http://www.brettle.com/neatupload
скорее всего в процессе загрузки с сервера получает
http://www.brettle.com/neatupload
скорее всего в процессе загрузки с сервера получает
ненужного запроса к серверу и загрузки этой картинкиHEAD-запрос не грузит картинку, только заголовки получает

Я честно говоря не понимаю, картинка по твоему описанию находится на твоем сервере, как ты собираешься узнать ее размер, не делая запрос к серверу?
Если картинка предварительно аплоадится на сервер, то картинку слишком большого размера можно отсекать в процессе заливки на стороне сервера, это можно сделать до окончания заливки.
В общем уточни, чего ты хочешь.
Оставить комментарий
Ivan826
Можно ли узнать вес картинки на странице JavaScript?Броузер ведь знает