#javascript #php #image
#javascript #php #изображение
Вопрос:
У меня есть веб-камера, которая загружает фотографию примерно каждые 30 секунд в определенную папку через FTP. Имена файлов указаны с использованием даты и времени их создания.
Например, изображение «image20161023s131200029.jpg «будет создан 23/10/2016 в 13:12:00. Способ именования изображений не может быть изменен. Следующее изображение будет загружено примерно через 30 секунд, но не точно, поэтому невозможно предсказать имя следующего файла.
Я хочу отображать самое последнее изображение и обновлять его каждые 30 секунд.
Моя проблема в том, что я могу отобразить самое последнее изображение на php, используя scandir () и sort (), чтобы получить самое последнее изображение, но поскольку это на PHP, его нельзя обновить. Я мог бы также использовать JavaScript для ссылки на изображение с заданным интервалом, если местоположение всегда было одинаковым, поэтому, если самое последнее изображение всегда находилось в «/webcam/webcam01.jpg «тогда это было бы прекрасно. Однако я не уверен, как это сделать, когда имя изображения будет постоянно меняться, если кто-нибудь знает лучший (или, по крайней мере, рабочий) способ сделать это, который был бы фантастическим.
Я надеюсь, что я четко объяснил, что я пытаюсь сделать, извините, если на этот вопрос был дан ответ ранее — я пробовал как поиск по этим сайтам, так и Google безрезультатно.
Комментарии:
1. Что вы пробовали? В чем именно проблема? Вы рассказываете историю вместо того, чтобы сказать «Это мой код, в этом проблема, это то, чего я не понимаю»…
2. Соблюдайте осторожность при написании JavaScript, чтобы избежать коллизий со словом из четырех букв.
Ответ №1:
Хорошо, итак, я думаю, что решение здесь, учитывая ваши ограничения, потребует от вас использования вашего серверного кода (PHP) для разрешения последнего имени файла изображения и предоставления его через конечную точку REST.
Таким образом, ваш код javascript отправит запрос на ваш сервер для URL файла изображения. Ваш PHP-код найдет самое последнее изображение и вернет соответствующий URL для этого файла. Это выглядело бы примерно так:
// Function to refresh the image.
function refreshImage() {
$.get("myserver/getImageUrl", function( data ) {
$("img").attr('src', data);
});
}
//refresh image every 31 seconds
setInterval(refreshImage, 31000);
По сути, без возможности управлять именем файла вам нужно будет использовать ваш серверный код для разрешения имени файла для вашего клиентского кода. Если бы вы могли управлять именем выходного файла, чтобы сделать его предсказуемым или чтобы у последнего изображения всегда было одно и то же имя, тогда вам не понадобилась бы часть на стороне сервера.