본문 바로가기
FrameWork

[firebase] 파일 업로드

by mansoorrr 2024. 9. 29.

웹이나 어플을 만들때 사용자가 입력하는 부분은 모두 db에 저장됨.

이미지, 동영상, 파일 등도 db에 저장할 수는 있으나 용량을 너무 많이 잡아먹음

이는 db를 효율적으로 사용하지 못하게 함

 

이것을 해결하기 위해 파일들의 경우 firebase를 사용해 저장하고 저장된 firbase의 주소를 db에 저장하는 방식을 사용

 

[firbase 사용방법]

1. 접속: 아래 링크를 통해 접속

 

 

Firebase | Google's Mobile and Web App Development Platform

개발자가 사용자가 좋아할 만한 앱과 게임을 빌드하도록 지원하는 Google의 모바일 및 웹 앱 개발 플랫폼인 Firebase에 대해 알아보세요.

firebase.google.com

 

2. 우측상단 Go to Console로 들어가 프로젝트 생성

 

3 . 생성한 프로젝트를 클릭하면  사진과 같은 페이지가 나타남. 빌드 > storage 클릭 해서 스토리지 활성화

 

4. firebase 사용방법(test.jsp, test.js로 설명)

  • FirbaseJS SDK 설치:  CDN으로 SDK를 설치할 수 있도록 가이드 함
    • 필수: "https://www.gstatic.com/firebasejs/10.13.1/firebase-app.js"
    • storage 사용: "https://www.gstatic.com/firebasejs/10.13.1/firebase-storage.js"
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>

<body>
	// file 업로드 위한 input태그 만듬
	<input id="file" type="file" />

</body>

<!-- jquery -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>

<!-- firebase CDN -->
<script src="https://www.gstatic.com/firebasejs/7.3.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.3.0/firebase-storage.js"></script>

</html>

 

  • js를 통해 Firebase 초기화 및 업로드 설정
    • firbaseconfig는 프로젝트 개요 > 설정 > 구성에서 확인 가능
  • html에서 upload > firebase로 업로드 > firbase url 생성 > url을 db에 저장 순으로 이루어짐(여기서는 출력까지만 진행)
// Firebase init
const firebaseConfig = {
    .....
  };
  
  
// fileUpload > firbaseUpload > urlDownload > console.log
$(document).ready(function(){
	// Firebase 초기화(중복 초기화 방지를 위해 if문 사용)
    if (!firebase.apps.length) {
    	firebase.initializeApp(firebaseConfig);
    }
    // storage 초기화
    var storage = firebase.storage();
    
    // fileUpload
    $('#file').on('change', function() {
    	var file = $(this)[0].file[0] // 업로드한 파일
        var ref = storage.ref('test/' + file.name) // firebase storage에 저장할 경로
        
        // firebaseUpload
        ref.put(file).then(function(snapshot) {
        	// urlDownload
            ref.getDownloadURL().then(function(url) {
            	console.log(url);
            }).catch(function(err) {
            	alert('url download error');
            })
        }).catch(function() {
        	alert('firebase upload error');
        })
    })
    
})

'FrameWork' 카테고리의 다른 글

[이미지업로드] 미리보기  (0) 2024.10.27
[동기&비동기] async await  (2) 2024.10.11
[coolSMS] 문자보내기 서비스 이용  (0) 2024.09.29