2013-05-22 2 views
3

У меня возникли проблемы с загрузкой файлов в приложение node.js с использованием restify.Node.js + восстановить файл загрузки can not

Это мой код https://gist.github.com/maumercado/7ab5cbbfd27c6b825044

загрузки Видимо события не срабатывает, но я действительно не знаю причину, также файлы создаются, но когда я вижу информацию о размере написано 0 байт.

также это является server.js файл https://gist.github.com/maumercado/ecf948b4b8fc7d39e69e

Im используя пост запрос для того, чтобы загрузить файл и узел 0.10.7.

Что может быть неправильным с кодом?

Спасибо

ответ

5

Похоже restify.bodyParser() работает так же, как express.bodyParser(), в том, что он будет обрабатывать загрузку для вас (и в процессе потребляют данные тела, переданные с запросом, так что ничего не осталось, чтобы прочитать один раз ваш обработчик называется - следовательно, и никаких событий).

Загруженные данные записываются во временный файл req.files.selfie.path в вашем случае.

Что касается того, что вы собираетесь делать (загрузить ход), я не думаю, что это возможно, если вы не реализуете функциональность самого bodyParser(). Но я не слишком хорошо знаком с внутренними работами Restify, чтобы быть уверенными в этом на 100%.

Если вы работаете с браузером в качестве клиента, вы можете реализовать там процесс загрузки.

+0

Итак, если я использую bodyparser, я должен прочитать 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.t. возобновление загрузки: это не будет работать в сочетании с 'express.bodyParser()'. Я не знаю ни одного модуля, который бы реализовал такую ​​функциональность :((** EDIT **: проверить [эту статью] (http://net.tutsplus.com/tutorials/javascript-ajax/how- to-create-a-resumable-video-uploade-in-node-js /) - они используют 'socket.io' для реализации возобновляемых загрузок). – robertklep