Я написал этот код, чтобы проверить, есть ли файлы с тем же именем «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>
Не используйте асинхронность 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»?