首页 > 解决方案 > express fileupload 包的路径问题

问题描述

当我想将文件上传到“公共”文件夹时遇到问题。当我不使用'./'. 如果我使用'../''/'文件不上传到公用文件夹。

**controllers.js**
files.forEach(file => {
        file.mv('../public/' + file.name, err => {
            if (err) {
                log({ err });
                return res.redirect('/')
            }

            log('file uploaded');

        })
    })

错误: Error: ENOENT: no such file or directory, open 'D:\Users\Antonio\Desktop\public\image4.jpg'

还有这个错误:Express-file-upload: Request is not eligible for file upload!

当我在里面时会发生这种情况controllers/controllers.js。如果我在里面写这段代码app.js,我不会遇到任何问题。

标签: node.jsimageexpressuploadexpress-fileupload

解决方案


file.mv()方法相对于cwd当前工作目录路径起作用。

为了让它工作,你需要这样写:

const path = require('path')

const fileName = path.join(__dirname, '../public/', file.name)

file.mv(fileName)

通过这样做,路径将相对于controller.js文件(而不是相对于cwd


推荐阅读