파일 업로드 기능을 개발한 경험들은 많을 것 이다. 보통 서버에서 파일 크기 확인을 해서, 실패 응답을 내려주기도 했지만, 요청 전에 직접 확인이 가능 하다.


<input type="file" name="sample" />


정보를 직접 확인 해보자.


$(document).on('change', 'input[type=file]', function() {
    console.log($(this)[0].files[0].size);
    console.log($(this)[0].files[0].name);
});


기본 객체가 Array 로 되어 있어 확인하기 까지 시간을 많이 소비 했다. 평소에 연락을 자주 하고 지내는 전산실 공장장 지단로보트님이 방법을 알려주셨다. Script 에 위 내용을 추가 하고 파일을 업로드 해보자. 확인이 가능 할 것이다.


작업 시 MultipartHttpServletRequest.getFileMap() 을 사용하여, 파일을 받았다. 하지만 또 다시 호출 하였다.


이와 같은 상황에서 발생 한다. getFileMap() 이 아니라도, 비슷한 기능의 메소드 라고 하면, 같은 상황 일 것 이다. 파일 만이 아니라, IO 작업 시 getInputStream() 을 두번 호출해도 같은 상황이라고 볼 수 있다.


IO 관련 메소드는 항상 작업 시 이런 점은 주의 해야 한다.


Map<String, MultipartFile> fileMap = ((MultipartHttpServletRequest) request).getFileMap();

// Doing...

fileMap = ((MultipartHttpServletRequest) request).getFileMap(); // Error 


소스를 점검 하고, 같은 메소드를 두번 호출 하지는 않는 지 확인 하자.


 

var mkdirp = require('mkdirp');

mkdirp('/tmp/foo/bar/baz', function (err) {
    if (err) console.error(err)
    else console.log('pow!')
});

 

node.js file system 을 확장 해서 사용하는 라이브러리 유용하다~~.

 

https://github.com/substack/node-mkdirp

 

 

+ Recent posts