在node.js中使用express时如何更改上载路径
实际上我遇到了两个问题 首先,如何更改上传路径 我的文件夹结构如下所示:在node.js中使用express时如何更改上载路径,node.js,file-upload,express,formidable,Node.js,File Upload,Express,Formidable,实际上我遇到了两个问题 首先,如何更改上传路径 我的文件夹结构如下所示: |__app.js |__upload 我的节点代码在app.js中并从中启动, 所以我想将上传图像上传到上传文件夹,我更改了路径: var form = new formidable.IncomingForm; form.uploadDir = "./upload"; 好像上传成功了,但我不知道文件去了哪里, 它不在上载文件夹中 那么正确的路径名是什么 第二个问题是 如果我不更改它,它可以正确上传到C:/Users/
|__app.js
|__upload
我的节点代码在app.js中并从中启动,
所以我想将上传图像上传到上传文件夹,我更改了路径:
var form = new formidable.IncomingForm;
form.uploadDir = "./upload";
好像上传成功了,但我不知道文件去了哪里,
它不在上载文件夹中
那么正确的路径名是什么
第二个问题是
如果我不更改它,它可以正确上传到C:/Users/ADMINI~1/AppData/Local/Temp
但它将在没有foramt的情况下重新命名
那么我如何获得上传格式并自己重命名呢
第三个问题是
我还将处理程序绑定到进程
事件,
像
但它似乎不起作用,当上传日志时什么都没有。为什么?我遗漏了什么吗
这是我的全部代码:
app.post('/upload', function (req, res) {
var form = new formidable.IncomingForm;
// form.uploadDir = "./upload";
console.log(form.uploadDir);
form.parse(req, function(err, fields, files){
if (err) return res.end('You found error');
console.log(files.image);
});
form.on('progress', function(bytesReceived, bytesExpected) {
console.log(bytesReceived + ' ' + bytesExpected);
});
form.on('error', function(err) {
res.writeHead(200, {'content-type': 'text/plain'});
res.end('error:\n\n'+util.inspect(err));
});
// res.end('Done');
res.send("well done");
return;
})
首先,你必须告诉你的应用程序你不想让
bodyParser
处理文件上传
app.use(express.bodyParser());
是
删除最后一行以自行处理文件上载。初始化表单时添加一些自定义选项
var form = new formidable.IncomingForm({
uploadDir: __dirname + '/tmp', // don't forget the __dirname here
keepExtensions: true
});
现在您的代码应该可以工作了
app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
var form = new formidable.IncomingForm({
uploadDir: __dirname + '/tmp', // don't forget the __dirname here
keepExtensions: true
});