반응형
file이 어떤 종류의 파일인지를 확인할때, MIME타임을 사용하면 가장 정확하다.
javascript에서 file.type 속성을 이용하면 좋지만,
브라우저별로, 해당 값을 넘져주기 않을 때가 있어서, 확장자의 명으로 체크하는 방법을 메모해 둔다.
파일의 타입이 pdf인지 비교를 할때, Edge에서 file.type에서 이상한 결과가 나올때가 있다.
if(file.type == 'application/pdf' || file.name.toLowerCase().endsWith('pdf'))
{
//code to execute
}
file.name.toLowerCase().endWith('pdf')
endWidth() 끝부분이 다음과 같이 끝나면, true를 넘겨준다.
참고: https://stackoverflow.com/questions/32849014/ie-11-and-ie-edge-get-file-type-failed
[내가 만든 방식]
var fileTypes = ['application/pdf'];//MIME TYPE
var file = document.querySelector('#file_upload');
function validFileType(file) {
for (var i = 0; i < fileTypes.length; i++) {
if (file.type) {
if (file.type === fileTypes[i]) {
return true;
}
} else if (file.name.toLowerCase().endsWith('pdf')) { // Edge file.type 안나오는 것을 위해서.
return true;
}
}
return false;
}
if (file.type) { //'',Null이면 실행하지 않음.
if (file.type === fileTypes[i]) {
return true;
}
} else if (file.name.toLowerCase().endsWith('pdf')) { // Edge file.type 안나오는 것을 위해서.
return true;
}
참고: https://stackoverflow.com/questions/32849014/ie-11-and-ie-edge-get-file-type-failed
IE9, IE8에서 pdf파일 알아내기
var file = $("#uploadCV").val();
if (file.substr(file.lastIndexOf('.') +1).toUpperCase() == "PDF")
{
$('.result').html('valid');
}
else
{
$('.result').html('not valid');
}
});
HTML 부분
<input id="uploadCV" type="file" name="uploadCV" accept="application/pdf" />
<div class="result"></div>
<input type="button" id="sendMe" value="send" />
출처: https://stackoverflow.com/questions/18359188/jquery-checking-file-extension-not-working-in-ie
파일 확장자로 이미지, 비디오 파일 타입 체크하기
function getExtension(filename) {
var parts = filename.split('.');
return parts[parts.length - 1];
}
function isImage(filename) {
var ext = getExtension(filename);
switch (ext.toLowerCase()) {
case 'jpg':
case 'gif':
case 'bmp':
case 'png':
//etc
return true;
}
return false;
}
function isVideo(filename) {
var ext = getExtension(filename);
switch (ext.toLowerCase()) {
case 'm4v':
case 'avi':
case 'mpg':
case 'mp4':
// etc
return true;
}
return false;
}
$(function() {
$('form').submit(function() {
function failValidation(msg) {
alert(msg); // just an alert for now but you can spice this up later
return false;
}
var file = $('#file');
var imageChosen = $('#type-1').is(':checked');
if (imageChosen && !isImage(file.val())) {
return failValidation('Please select a valid image');
}
else if (!imageChosen && !isVideo(file.val())) {
return failValidation('Please select a valid video file.');
}
// success at this point
// indicate success with alert for now
alert('Valid file!');
return false; // prevent form submitting anyway
});
(참고) https://stackoverflow.com/questions/7977084/check-file-type-when-form-submit
[그림 1. javasciprt로 받아오는 file 정보들]
반응형
'Web > Javascript' 카테고리의 다른 글
Javascript의 null 과 empty string등 비교 (0) | 2018.03.27 |
---|---|
addEventListener에 호출 함수에 파라미터 넣기 (0) | 2018.02.28 |
[Javascript] 현재 페이지 이름 가져오기 (0) | 2018.01.10 |
[Javascript] replace 이용한 replaceAll 만들기 (0) | 2017.11.11 |
CSS와 Javascript을 이용한 이미지 중앙 정렬 (paddingTop) (0) | 2017.10.11 |
jQuery 객체 name , id , class 가져오기 (0) | 2017.09.13 |
[JS] 소수점 2자리 자르기 float 2 decimal (0) | 2017.01.28 |
구글 차트(Google Chart) 사이즈 resized Script 함수 (0) | 2016.12.06 |
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)
(로그인하지 않으셔도 가능)