javascript - 使用 Multer 上传的文件的 URL

标签 javascript node.js multer

我正在使用 Multer 上传一些文件,我想知道上传后访问这些文件的推荐方式是什么。

这是我的代码:

server.js

app.use('/', require('./routes'));

routes/index.js

var teacher = require('./teachers.js');

router.post('/upload', teacher.uploadAvatar);

routes/teachers.js

var multer      = require('multer');
var upload      = multer({ dest: 'uploads/teacher/' }).single('avatar');

uploadAvatar: function(req, res) {
    upload(req, res, function(err) {
        console.log(req.body);
        console.log(req.file);

        if(err) {
            return res.end("Error uploading file.");
        }
        res.end("File is uploaded");
    });
}

访问以下网址localhost:8000/uploads/teacher/uploaded_file_name.png会出现错误错误:未找到

最佳答案

您需要为静态 Assets (包括上传)创建一个public文件夹。因此,您的文件夹结构将类似于 ./public/uploads/teacher/

然后您必须更新 routes/teachers.js 中的以下行:

var upload      = multer({ dest: 'uploads/teacher/' }).single('avatar');

至:

var upload      = multer({ dest: 'public/uploads/teacher/' }).single('avatar');

并将以下行添加到您的 server.js 中,以从 public 目录提供静态资源:

app.use(express.static('public'));

然后您应该能够访问localhost:8000/uploads/teacher/uploaded_file_name.png

关于javascript - 使用 Multer 上传的文件的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34984347/

相关文章:

javascript - Express.js 和 multer : how to know when the files are all uploaded?

javascript - 将 url 哈希值的前 n 个字符中的哈希值替换为字符串

javascript - 使用 javascript ajax post 请求时在 Instagram API 中获取重复图像

javascript - Node.JS:execFile ENOENT

node.js - Mongoose 在一个查询中更新或创建多个值

javascript - 如何创建 Express api 可执行文件

javascript - Passport.js 自定义回调传递参数

javascript - wordpress - 通过函数加载脚本 = 谷歌页面速度问题

javascript - 警告 : Unexpected block "scripts" Jade

node.js - 在 flutter 中从 MultipartRequest 发送图像时无法检测到图像