我的上传者遇到问题。我认为所有代码都是正确的,而且文件仍然不会在上传文件夹中创建。另外当我尝试console.log(req.files)我得到一个空数组。我尽量做到本地 下面是代码:快速上传不起作用
const express = require("express"),
app = express(),
multer = require("multer"),
bodyParser=require("body-parser"),
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads/');
},
filename: function (req, file, callback) {
callback(null, file.fieldname + '-' + Date.now() + '.' + mime.extension(file.mimetype));
}
});
var upload = multer({ storage : storage }).array('userPic');
app.post("/postFormAct", isLoggedIn, function(req, res){
upload(req,res,function(err) {
console.log(req.files);
});
});
也有我的方式:
<form method="post" action="/postFormAct" enctype="multipart/form-data">
<input type="text" name="user"><br>
<input type="text" name="email"><br>
<input type="file" name="userPic"><br>
<input type="submit" value="Submit">
</form>
一旦我添加了缺少的依赖关系'mime'和'isLoggedIn',我的代码就可以用于我了,但我认为它们并不适合你。你有没有试过记录'err'来确认没有错误?你有没有尝试把日志记录到你的'destination'和'filename'函数中来查看它们是否被调用?它可能是一个文件系统权限问题?你有没有尝试过使用绝对路径而不是相对路径? – skirtle
我试过记录,并没有任何错误。也许有一些错误的形式,因为我尝试每个解决方案,每次我得到一个空数组或未定义req.files – rafalos
您的表单很不错,但只需添加另一个'
'在提交和检查之上。代码没有问题。我已经执行了你的代码并为我工作。只是为了测试目的删除isLoggedIn并执行代码。 –