Jump to content
  • 0

Проверка файла на существование


Дядя Саша
 Share

Question

Нужно загрузить в память несколько картинок, проблема именно в "несколько" и в том что сделать это надо яваскриптом :D Картинки не в БД, а в папке, есть идеи на счет такого варианта:

var x = 1;
var imgArray = new Array(x);
for (var i = 0; i < x; i++) {
imgArray[i] = new Image;
imgArray[i].src = "img/galery/" + i + ".jpg"; // картинки пронумерованы по порядку
if (imgArray[i]) { //проблема именно тут - не знаю как проверить, картинка там или пусто, зацикливается. возможно ли вообще это проверить? собственно это меня и интересовало. уже все перепробовал, напился, вроде помогло, но все равно зацикливается
x++
}
}

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

if (imgArray[i])

Здесь Вы просто проверяеете, определен ли элемент массива (т.е. не undefined/null/false/0 и т.д.), в данном случае - создан ли экземпляр объекта Image. И никак не наличие картинки по указанному адресу (для этого ее надо попытаться загрузить, т.е. нужно какое-то время). Ну а поскольку браузер исправно создает экземпляры new Image, то условие остановки цикла никак не может быть выполнено...

Link to comment
Share on other sites

  • 0
Только попытавшись загрузить каждый. JS не работает с файловой системой сервера ибо выполняется на стороне клиента.

Таки не убедил Вас? :D

http://forum.htmlbook.ru/viewtopic.php?pid=23506#p23506

WingedFox

+1 интересный способ :)

Несколько идей:

1. ПХП скрипт может возвращать через XMLHttpRequest количество картинок, тогда можно будет построить нормальный цикл

2. можно присмотреться к таким штучкам как complete, onload и onerror

Link to comment
Share on other sites

  • 0
Таки не убедил Вас? :D

Нет. То, что файл доступен/недоступен по http не говорит о том что он присутствует/отсутствует.

Так что работать с файловой системой сервера (и, кстати, клиента) JS не умеет.

Link to comment
Share on other sites

  • 0
Таки не убедил Вас? :)

Нет. То, что файл доступен/недоступен по http не говорит о том что он присутствует/отсутствует.

Так что работать с файловой системой сервера (и, кстати, клиента) JS не умеет.

Я имел ввиду, что загрузка таки не требуется.

И имхо зачастую такого достаточно для определения существования файла. Остальную функциональность (удаление, копирование и т.д.) можно обеспечить через тот же Аякс.

На прямую конечно JS с файловой системой сервера работать не будет. Тут и спорить не о чем. :)

А с файловой системой клиента можно работать используя ActiveX (если не ошибаюсь). Но это нафиг никому не нужно :)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy