티스토리 뷰
IMGUR API를 사용해서 얻는 이점
서버내 이미지 저장을 할 필요가 없기 때문에 서버하드용량을 아낄 수 있습니다.
예를들어 프로그래머분들이 개인블로그사이트 운영등을 할때에 하드용량이 적은 값싼 호스팅으로도 사이트운영이 가능해집니다.
(보통 이미지 파일들이 하드용량을 잡아먹지 소스가 용량을 잡아먹진 않기 때문에..)
1. IMGUR에 접속해서 가입 후 어플리케이션 신청 후 Client ID를 발급받는다.
https://imgur.com/register 로 접속하셔서 일단 아래와 같이 가입을 완료 후
https://api.imgur.com/oauth2/addclient 로 들어가서 사진과 같이 대강 작성 후 submit버튼을 눌러서 완료하면
Client ID 와 Client Secret을 주는데 여기서 클라이언트아이디가 실제 API사용시 필요하게되는 정보입니다.
2. 이제 자바스크립트로 업로드를 구현해봅시다.
쓰기 쉬운 형태의 함수로 잘 만들어두었습니다^^
아래 소스로 먼저 테스트해보시고 개인에 맞게 수정해서 사용하시면 됩니다.
※ 제이쿼리를 사용했으므로 기본적으로 제이쿼리를 사용할 수 있는 환경에서만 동작합니다.
※ 무단으로 복사 및 퍼가는 행위를 일체 금지합니다.
<input name="img" type="file"/>
<script type="text/javascript">
/*
IMGUR 파일 업로드 함수
@param file : 파일데이터
@param callback : 콜백함수
*/function uploadImageByImgur(file, callback) {
form = new FormData();
form.append('image', file);
$.ajax({
xhr: function(){
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt){// 업로드상태이벤트리스너등록
if (evt.lengthComputable) {
console.log("업로드진행률:"+parseInt( (evt.loaded / evt.total * 100), 10)+"%");
}
}, false);
return xhr;
},
url: 'https://api.imgur.com/3/image',// 업로드요청주소
headers: { Authorization: 'Client-ID 발급받은클라이언트아이디' },
type: 'POST',
data: form,
cache: false,
contentType: false,
processData: false
}).always(callback);
}
/*
파일 변경 이벤트가 감지되면 자동으로 이미지 업로드
*/
$(document).ready(function(){ // document가 모두 로드되면 실행됨
$("input[name=img]").change(function(){// 사용자가 파일을 변경했을때 발생됨
var file = this.files[0];
uploadImageByImgur(file, function(result){
console.log(result);
console.log('업로드결과:'+result.status);
if(result.status!=200){
result = $.parseJSON(result.responseText);
}
if(result.data.error){
console.log('지원하지않는 파일형식..');
}else{
console.log('업로드된 파일경로:'+result.data.link);
}
});
});
});
</script>
'프로그래밍 > 자바스크립트' 카테고리의 다른 글
자바스크립트 - 쿠키 사용방법 (저장, 삭제, 가져오기) (0) | 2019.01.17 |
---|---|
웹페이지 우클릭 방지법 (0) | 2018.09.22 |
자바스크립트 금액에 콤마(,) 포함시키는 방법 (0) | 2016.12.08 |
자바스크립트 클라이언트가 PC환경인지 모바일환경인지 확인하기 (0) | 2016.12.08 |
자바스크립트 페이지 스크롤 상단 자동스크롤링, 애니메이션이동 (0) | 2016.12.08 |
- Total
- Today
- Yesterday
- 자바스크립트
- 주택임대사업자
- Sandbox
- 설치
- Java
- db
- 안드로이드
- 페이팔 테스트
- AWS
- apache
- 페이팔 결제
- Tomcat
- 워크스페이스
- 리눅스
- EC2
- 주택임대사업자 등록
- 톰캣
- 포트
- 취득세 감면
- Workspace
- Eclipse
- 페이팔
- paypal
- Linux
- 이클립스
- 페이팔 연동
- mysql
- 샌드박스
- sample
- 유효성검사
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |