Первая публикация здесь. Я знаю, что встроенный php не является предпочтительным, но я не преобразовал все свои сценарии в эхо-коды json_encoded для работы в javascript на стороне клиента ... так что на данный момент у меня есть встроенный php.
Я не знаю расширения загруженного пользователем носителя, поскольку это может быть jpg, mp4 и т. Д. c, и при загрузке он переходит в папку мультимедиа с идентификатором пользователя в качестве идентификатора.
Когда Мой пользователь сначала загружает div (и страницу html), скрипт php циклически перебирает массив и каждый раз выполняет запрос fetch_asso c из sql в базу данных; Он возвращает (media_id #) и распечатывает li с соответствующим носителем, отображаемым рядом с некоторыми другими значениями из запроса.
Я знаю только (media_id) и путь к файлу без расширения. Когда страница загружается в первый раз, все работает отлично, и функция file_exists возвращает корректно.
ПРОБЛЕМА
Когда я AJAX div и делаю запрос снова, потому что пользователь добавил строку в базу данных, новый список распечатывается со всей информацией, НО функция file_exists не распознает точно такие же пути, как раньше, и у меня нет img или видео на странице.
Я копирую / вставляю тот же самый код из исходного div и помещаю его в файл для ajax для повторного запроса и печати новых li.
Все переменные одинаковы, и когда я жестко кодирую тестовый путь к файлу, он печатает нормально. Может быть, есть проблема с кэшированием?
КОД
<?php
$result=$conn->query($select);
$row=$result->fetch_assoc();
?>
<li>
<?php
if ($row['count']>0) {
echo "<div class='media-container'>";
$pathname = "uploads/".$row["id"]."media1";
$testjpg=$pathname.".jpg";
$testjpeg=$pathname.".jpeg";
$testpng=$pathname.".png";
$testmp4=$pathname.".mp4";
if (file_exists($testjpg)==TRUE || file_exists($testpng)==TRUE || file_exists($testjpeg)==TRUE) {
echo '<img src="'.$pathname.'">';
}if(file_exists($testmp4)==TRUE) {
echo "<video></video>";
}
echo "</div>";
}?>
</li>
Я мог бы воспользоваться некоторыми советами о том, как это исправить и как напечатать соответствующие теги на носителях. неизвестные типы носителей.
ВЫХОД
<div class='media-container'>
</div>
ОТЛАДКИ ОТПРАВКИ
, повторяя точный путь к файлу известное изображение в теге <img>
работает нормально. Помещение echo'test';
в дело file_exists ничего не дает.
-
Решение (Вроде)
Итак, я уже использовал ошибку html, и я нашел обходной путь, хотя я все еще хотел бы знать, почему я получаю ошибку. PSA это использует JQuery, но javascript тоже работает:
Мое решение
">