<form action="서버주소/upload_image" method="post" enctype="multipart/form-data">
<input type="file" name="test_file">
<button type="submit">전송</button>
</form>
파일전송을 할 때는 multipart/form-data로 전송해야 한다. 파일을 선택하고 전송버튼을 클릭하면 http://서버주소/upload_image로 선택한 파일이 multipart 형식으로 전송 요청된다.
많이 사용하는 Express framework를 기준으로 작성.
multipart 형식의 데이터를 수신하기 위해서는 몇 가지 라이브러리가 있지만 multiparty라는 라이브러리를 사용해보겠다.
npm install --save multiparty
import multiparty from 'multiparty'; // 또는 var multipart = require('multiparty');
// /upload_image POST 요청을 받는 라우터
router.post('/upload_image', (req, res) => {
let form = new multiparty.Form({
autoFiles: 파일이 올라오면 자동으로 uploadDir에 저장을 할 것인지 true/false,
uploadDir: 파일을를 업로드 할 절대경로,
maxFilesSize: 1024 * 1024 * 5 // 허용 파일 사이즈 최대치
});
form.parse(req, (error, fields, files) => {
// 파일 전송이 요청되면 이곳으로 온다.
// 에러와 필드 정보, 파일 객체가 넘어온다.
res.json('file uploaded'); // 파일과 예외 처리를 한 뒤 브라우저로 응답해준다.
});
});