【发布时间】:2018-02-25 08:30:45
【问题描述】:
我正在尝试使用multer将文件从客户端的html表单上传到服务器端,multer模块在服务器端处理文件。
这里一切正常,因为我从服务器得到 200 ok 响应,但是文件应该上传到我的文件系统,我看不到它。
这是我的 html 表单
<template>
<div id="app">
<form action="http://localhost:3000/upload" method="post" enctype="multipart/form-data">
<h2>Select a file</h2>
<input name="curriculum" id="inputVal" type="file">
<button type="submit">Send</button>
</form>
</div>
</template>
我的服务器端代码
var express = require('express');
var router = express.Router();
var path = require('path');
var fs = require('fs');
var multer = require('multer')
var storage = multer.diskStorage({
destination: function(req,file,callback) {
callback(null, '../files');
},
filename: function(req,file,callback) {
callback(null,Date.now() + file,callback);
}
})
var upload = multer({ storage: storage }).single('curriculum');
router.post('/upload', function (req, res, next) {
upload(req,res, function(err){
if(err) {
return res.status(404).send("a error ocurred");
}
res.status(200).send("file uploaded");
});
});
module.exports = 路由器;
更新
我在 npm multer 网站(服务器端)上更改了我的解决方案库
var express = require('express');
var router = express.Router();
var path = require('path');
var fs = require('fs');
var multer = require('multer')
var upload = multer({ dest: 'uploads/' });
router.post('/upload',upload.single('curriculum') ,function (req, res, next) {
console.log(req.files);
});
module.exports = 路由器;
求救!
【问题讨论】:
-
您是否为尝试上传文件的目标文件夹设置了适当的读/写权限?
-
是的,我有,我没有收到任何错误,通常我会得到一个 CORS,但我允许它在我的应用程序文件中,我不知道为什么它不起作用
-
您能否尝试在文件后添加
/为callback(null, '../files/');看看是否有效? -
还是什么都没有:/
-
在传递req上传之前,你可以尝试检查
req.file.curriculum是否包含文件
标签: javascript node.js file file-upload multer