2014-06-13 6 views
1

DropZone을 사용하여 파일을 내 nodejs 서버에 업로드하려고합니다. 그러나 게시물이 내 nodejs 서버에 도달 할 때 파일 핸들을 얻는 방법을 알아낼 수 없습니다.dropzone nodejs 파일 업로드

app.post('/file-upload', function (request, response) { 
    console.log("Route: '/file-upload' "); 
    console.log("File upload request from user: " + request.body.userName); 
    // Get a file handle, read the file and then write it out to the file system. 

    ... 

    }); 

는이 코드가 실행지고 있음을 볼 수 있습니다

<form action="/file-upload" class="dropzone" id="logoDropZone"> 
    <input type="hidden" name="userName" value="user"/> 
</form> 

그런 다음 내 nodejs 서버에서 나는 다음과 같은 코드를 가지고 : 내 HTML에 DROPZONE를 인스턴스화하는 방법은 다음입니다. 또한 요청 객체를 통해 입력 필드 (숨겨진 입력 참조)의 값에 액세스 할 수 있습니다. 하지만 파일 자체에 액세스하여 서버 파일 시스템에 파일을 쓸 수있는 방법은 무엇입니까?

+0

속성에 이것을 넣으십시오 :'enctype = "multipart/form-data"' –

답변

2

이 질문에 대한 답을 찾았습니다.

app.post('/file-upload', function (request, response) { 

    fs.readFile(request.files.file.path, function(err, data) { 

    var newPath = __dirname + "/public/img/xspectra/customlogo.png"; 
    fs.writeFile(newPath, data, function (err) { 
     console.log("Finished writing file..." + err); 
     response.redirect("back"); 
    }); 

    }); 

}); 

다른 사람이 같은 문제에 집착하지 않도록, 내가 제대로 일을하지 있었는지를 설명 할 것이다 :

1) 형태 비록 다음 코드는 서버에 파일을 업로드 요소에 "name"속성이 없으면 "file"이라는 이름을 통해 노드 요청 객체에서 파일에 액세스 할 수 있습니다. 위 코드에서 다음과 같이 볼 수 있습니다.

request.files.file.path 

여기서 'file'은 양식의 '이름'입니다.

2)이 코드는 다음 사이트에서 발견되었다 (신용을 제공하는 아래 건설적인 비판)을 제공 : 확실히 문서를 만드는 주인을 주셔서 감사하지만 http://howtonode.org/af136c8ce966618cc0857dbc5e5da01e9d4d87d5/really-simple-file-uploads

, 그것은 줄이기 위해 몇 가지 개선을 사용할 수를 혼동. 주로 위의 포인트 번호 '1)'을 명시 적으로 설명하기 위해 문서를 업데이트해야합니다.

관련 문제