2013-05-22 4 views
3

restify를 사용하여 node.js 어플리케이션에 파일을 업로드하는 데 문제가 있습니다.Node.js + 캔트 업로드 파일 수정하기

이것은 분명히 이벤트가 트리거되지 않습니다 내 업로드 코드 https://gist.github.com/maumercado/7ab5cbbfd27c6b825044

, 그러나 나는 또한 파일이 만들어지는 이유를 알고 정말 해달라고,하지만 크기 정보를 볼 일단이 0 바이트를 말한다.

또한이는 server.js 파일 노드 1996 년 말경에 공개되었던 0.10.7을 업로드하기 위해 POST 요청을 사용하여

https://gist.github.com/maumercado/ecf948b4b8fc7d39e69e 파일입니다.

코드가 잘못되었을 수 있습니까 ??

감사합니다

답변

5

그것은 restify.bodyParser() 당신 (그 과정에서이 요청과 함께 전달 된 본문 데이터를 소비하는 것이 업로드를 처리한다는 점에서, express.bodyParser()와 동일하게 작동처럼 보이는, 그래서 아무것도 한 번 읽어 남아 있지있다 귀하의 처리기가 호출됩니다 - 따라서, 이벤트도).

업로드 된 데이터는 임시 파일 인 req.files.selfie.path에 기록됩니다.

당신이하고자하는 일 (진행 상황 업로드)은 bodyParser()의 기능을 구현하지 않는 한 가능하지 않다고 생각합니다. 하지만 Restitution의 내부 작업에 대해 100 % 확실하게 알고있는 것은 아닙니다.

브라우저로 클라이언트로 작업하는 경우 대신 업로드 진행률을 구현할 수 있습니다.

+0

그렇다면 바디 팩서를 사용하면 ill가 req.files.selfie.path를 읽은 다음 newfile.pipe (req.files.selfie.path)와 같은 경로에 작성해야합니다. ? 파일 업로드를 재개 할 수있게하려면 어떻게 작동합니까? – maumercado

+1

@maumercado 가능하면 ['fs.rename()'] (http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback)을 사용하여 임시 파일의 이름을 최종 이름으로 바꿀 수도 있습니다. W.r. 업로드를 다시 시작하면 : express.bodyParser()와 함께 작동하지 않을 것입니다. 이러한 기능을 구현하는 모듈을 모르겠다. (** 편집 ** : [이 기사] (http://net.tutsplus.com/tutorials/javascript-ajax/how- 노드 재사용을 위해 재개 가능한 비디오를 생성하기 위해'socket.io'를 사용합니다). – robertklep

관련 문제