Проверьте, существуют ли 1 или несколько файлов с одинаковым именем, но с разными расширениями в одной папке в JQUERY

Я написал этот код, чтобы проверить, есть ли файлы с тем же именем «planning» в папке «upload», но только с расширением pdf или html. Я знаю, этот синтаксис не оптимизирован, но он работает. Я думаю, что есть более короткие и простые пути.

Есть ли у кого-нибудь примеры, которыми можно поделиться со мной?

Спасибо.

<script>
    function FileExists(url)
    {
        var http = new XMLHttpRequest();
        http.open('HEAD', url, false);
        http.send();
        return http.status!=404;
    }
    
    var source = "upload/planning_11";
    var pdf_file = FileExist(source+".pdf");            
    var html_file = FileExist(source+".html");  
            
    if (pdf_file==true && html_file==false) {
    $('#exist_file_pdf').show();
    $('#exist_file_html').hide();
    $('#exist_file_all').hide();
    } else if (pdf_file==false && html_file==true) {
    $('#exist_file_html').hide();
    $('#exist_file_html').show();
    $('#exist_file_all').hide();
    } else if (pdf_file==true && html_file==true) {
    $('#exist_file_html').hide();
    $('#exist_file_html').hide();
    $('#exist_file_all').show();
    } else if (pdf_file==false && html_file==false) {
    $('#exist_file_html').hide();
    $('#exist_file_html').hide();
    $('#exist_file_all').hide();
    }
</script>
    
    <div id = "exist_file_pdf">PDF planning file exist</div>
    <div id = "exist_file_html">HTML planning files exist</div>
    <div id = "exist_file_all">PDF and HTML planning files exists !</div>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
196
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не используйте асинхронность false

Вместо этого вы можете сделать это

const source = "upload/planning_11";
const pdfUrl = source + ".pdf";
const htmlUrl = source + ".html";
$('#exist_file_all').hide();
$('#exist_file_html').hide();
$('#exist_file_pdf').hide();

$.ajax({
  type: 'HEAD',
  url: pdfUrl
  success: function(msg) {
    $('#exist_file_pdf').show();
    $.ajax({
      type: 'HEAD',
      url: htmlUrl
      success: function(msg) {
        $('#exist_file_html').show();
        if ($('#exist_file_html').is(":visible") && 
            $('#exist_file_pdf').is(":visible")) {
          $('#exist_file_all').show();
          $('#exist_file_html').hide();
          $('#exist_file_pdf').hide();
        } 
      }
    });
  }
});

Спасибо !!! Ваш код идеален, но как скрыть «exist_file_pdf» и «exist_file_html», если отображается «exist_file_all»?

Canta Vero 10.12.2020 18:15

Это было так просто. Каждый раз, когда решение находится после долгих часов поисков, у меня такое же чувство, как когда проходил Санта-Клаус. Большое спасибо.

Canta Vero 12.12.2020 13:59

Другие вопросы по теме