일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 인강배속
- GUI 또는 CLI전환
- 영상배속
- cubrid
- CentOS7
- 웹영상배속
- #Oracle
- MySQL
- Windows
- docker
- cloudready OS
- docker container restore
- putty
- cmd인스톨러설치
- Dell Venue 8 Pro
- OTT셋톱박스
- ipvlan
- Linux
- 컨테이너 복원
- 파이썬 스톱워치
- cmd로msi파일설치
- 컨테이너 백업
- 시스템예약종료
- 딜라이브플러스h3
- Oracle
- CentOS
- YCSB
- docker container backup
- ventoy 사용법
- VPN
- Today
- Total
일단은 프로그래머 나부랭이
input 태그 file 속성으로 파일 업로드할 때 특정 확장자만 업로드하도록 제한하는 법 본문
input 태그 file 속성으로 파일 업로드할 때 특정 확장자만 업로드하도록 제한하는 법
하필이면 도대체가 2016. 7. 28. 15:56웹 페이지에 파일 업로드 기능을 넣을 때면 흔히 '<input type="file">'을 이용하게 됩니다.
이때, accept 속성을 이용하면 업로드할 파일의 확장자를 제한할 수 있습니다.
예를 들어서 jpg파일만 업로드 하고 싶다.
'<input type="file" accept=".jpg">'라고 쓰면됩니다.
만약 여러 확장자를 쓰고 싶다면 아래와 같이 쓰시면됩니다.
'<input type="file" accept=".jpg,.pdf">'
이렇게 하면 최신 브라우져에서는 확장자 제한을 걸어둔채로 업로드가 가능할 겁니다.
.
.
.
하지만, 우리의 IE8 이하의 브라우져에서는 위의 방법이 통용되지 않습니다.
그래서 방법을 찾다가.. 답답해서 함수 하나 만들었습니다.
________________________________________________________________________________________
function filechk(){
var fileDir="확장자를 포함한 파일명";
if(fileDir.substring(fileDir.lastIndexOf(".")+1,fileDir.length).search("확장자명") == -1){
alert("지정된 확장자의 파일만 업로드 가능합니다!");
}
}
-----------------------------------------------------------------------------------------
위의 함수를 이용하면 됩니다.
원리는 간단합니다.
업로드할 파일명에서 '.'을 찾고, 거기부터 파일의 마지막 글자까지를 추출하여, 내가 원하는 확장자가 맞는지 확인하고, 그게 아니면 경고창을 띄워주는 원리입니다.
(검색하지 말고 진작에 이거나 만들껄 그랬습니다..)
p.s : 사실 저 함수를 만들면서, 제한된 확장자가 아닌 파일을 업로드시도 할 경우, '<input type="file">'의 value값을 지우려고 했는데, 아무리해도 지워지지 않았습니다. 그래서 확인해보니, 보안상 file타입의 value값은 바꿀수 없다고 합니다.(만약 그게 가능하다면 임의로 사용자의 파일을 갈췌하여 무단 업로드할 수도 있을테니까요.) 이 점도 참고하세요~
'Java Script (+Jquery)' 카테고리의 다른 글
jquery를 이용한 스크롤 애니메이션 (0) | 2018.03.27 |
---|---|
get/post 데이터 전송 방식의 차이 (0) | 2018.03.08 |
천단위 구분기호(,) 찍는 함수 (0) | 2017.02.17 |
포커스 자동 이동하는 함수 (0) | 2016.09.20 |
XSS - 크로스 사이트 스크립팅에 대해서 (0) | 2016.08.19 |