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

#javascript #html #jquery

#javascript #HTML #jquery

Вопрос:

Я написал этот код, чтобы проверить, есть ли файлы с одинаковым именем «планирование» в папке «загрузка», но только с расширением 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 amp;amp; html_file==false) {
    $('#exist_file_pdf').show();
    $('#exist_file_html').hide();
    $('#exist_file_all').hide();
    } else if (pdf_file==false amp;amp; html_file==true) {
    $('#exist_file_html').hide();
    $('#exist_file_html').show();
    $('#exist_file_all').hide();
    } else if (pdf_file==true amp;amp; html_file==true) {
    $('#exist_file_html').hide();
    $('#exist_file_html').hide();
    $('#exist_file_all').show();
    } else if (pdf_file==false amp;amp; 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>
 

Ответ №1:

Не используйте async 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") amp;amp; 
            $('#exist_file_pdf').is(":visible")) {
          $('#exist_file_all').show();
          $('#exist_file_html').hide();
          $('#exist_file_pdf').hide();
        } 
      }
    });
  }
});
 

Комментарии:

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

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