자바 스크립트 (아마도 JQuery)를 사용하여 PHP가 실행되기 전에 사용자가 올바른 파일 형식을 업로드했는지 확인하기 만하면됩니다. 클라이언트 측에서이를 수행하는 한 가지 방법 일 수 있습니다. 다음은 그 예입니다.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript">
(function($) {
$(document).ready(function(){
// ASSUMING THAT YOUR FILE INPUT HAS A CLASS-NAME OF "file_upload"
// WE CAN SIMPLY GRAB IT INTO A VARIABLE LIKE SO:
var pixFile = $(".file_upload");
// NOW, WHEN THE USER INTERACTS WITH THIS FILE-INPUT
// WE CAN REACT TO THE CHANGE EVENT...
pixFile.on("change", function(evt){
var dis_val = $(this).val();
// IF USER TRIES TO UPLOAD ANYTHING OUTSIDE ACCEPTABLE/VALID IMAGE FORMATS
// WE INFORM HIM OF OUR PREFERENCES: HERE WE ARE USING ALERT...
if(!/(\.)(jpg|jpeg|png|gif|bmp)$/.test(dis_val)){ // ADD OTHER FORMATS YOU WISH TO SUPPORT: 'tiff, psd, pdf'
alert("You can only upload image Files (JPG, JPEG, PNG, GIF, BMP)"); // ADD OTHER FORMATS YOU WISH TO SUPPORT
// THEN IMMEDIATELY RESET THE VALUE OF THE UPLOADED FILE TO NULL
$(this).val(null);
return false;
}else{
// OTHERWISE: WE KNOW THAT USER UPLOADED THE ACCEPTABLE FILE FORMAT(S)
// YOU MAY OR MAY NOT WANT TO REACT TO THIS... THE CHOICE IS YOURS
// AND YOU MAY AS WELL JUST DELETE THE ENTIRE ELSE CLAUSE (IF YOU SO WISH)
}
});
});
})(jQuery);
</script>
이 문제는 파일 크기와 관련이 있으며 확장명과 관련이 없습니다. – Kld
오류 로그를 확인 했습니까? 그리고 문제는 형식 문제가 아닌 파일 크기 문제입니까? –
답장을 보내 주셔서 감사합니다. 예. 오류 로그를 확인했습니다. 오류가 표시되지 않습니다. 내가 생각했던 것도 그거야. 어떻게 그 일을 막을 수 있습니까? 모든 것이 잘 작동합니다. .webp 및 .exe 및 기타 확장명이 필요합니다. 사용자가 우연히 이들 중 하나를 업로드하면 어떻게 될까요? –