【问题标题】:'ENOENT, open' when using connect-multiparty param 'uploadDir' (Express 4)使用连接多方参数“uploadDir”时的“ENOENT,打开”(Express 4)
【发布时间】:2014-12-04 12:50:21
【问题描述】:

我在 Express4/Node/Angular 中使用 connect-multiparty。在本地运行它,在文件上传时,我在指定“uploadDir”时收到“ENOENT open”错误,但它适用于默认的 multipart()。

错误:ENOENT,打开 'upload_image_dir/83785-xjohos.png' POST /api/providers/me/543695a47be1540000a4fedc/upload/image 400 20ms - 63b

代码:(建立在 generator-angular-fullstack 之上) var config = require('../../config/environment'); var multipart = require('connect-multiparty'); var router = express.Router();

// ... more routes

router.post('/me/:id/upload/image', auth.isAuthenticated(), multipart({ uploadDir: './upload_image_dir' }), controller.upload_image);

我哪里错了?

旧帖子指的是由于 BodyParser 引起的问题,但 express 4 和最新的 connect-multiparty 并非如此。

如果错误表示“不存在目录”,那么我需要手动创建目录吗?示例和文档没有提到它。

我应该使用上面使用的相对路径吗?

编辑 1: 我尝试了以下,仍然是同样的错误:

router.post('/me/:id/upload/image', auth.isAuthenticated(), multipart({ uploadDir: __dirname + '../../../upload_image_dir' }), controller.upload_image);

【问题讨论】:

    标签: node.js angularjs file-upload express multipart


    【解决方案1】:

    __dirname 不会在末尾添加/

    改变这个:

    __dirname + '../../../upload_image_dir'
    

    到这里:

    __dirname + '/../../../upload_image_dir'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多