关于nodejs接受多文件上传问题

本文探讨了如何在Node.js中使用formidable模块处理基本的表单文件上传以及通过Ajax异步提交多个文件。在Ajax方式下,利用FormData对象收集文件,通过jQuery的ajax方法进行POST请求。后端依然使用formidable模块保存上传的文件。
摘要由CSDN通过智能技术生成

关于多个文件上传的表单有多中方法:

1)基本的表单上传

<form action="/fileupload" enctype="multipart/form-data">
  选择一个文件: <input type="file" name="file">
  <input type="submit">
</form>

多个文件的话 enctype="multipart/form-data"这个一定要有。

这种情况的话点击submit按钮就会自动提交file到后台,使用nodejs来保存文件的话一般使用formidable这个模块

npm install formidable --save   安装此模块
var formidable = require('formidable');     引用此模块


我们需要在对应的后台路由或者处理fileupload的js文件方法中来使用上述模块获取上传的文件

var form = new formidable.IncomingForm();     初始化这个模块
form.keepExtensions = true;
    form.uploadDir = "./tempdir";
   form.multiples = true;
   form.maxFieldsSize = 50 * 1024 * 1024;         参数设置 可以参考文档https://github.com/felixge/node-formidable   里面设置相应参数
form.parse(request, function(err, fields, files) {           //使用这个函数来获取文件
//这里可以使用两种方法来获取文件,1、nodejs是事件驱动机制,可以使用form.on("file",function(){})来处理。文件接收到触发事件  2、对接收文件进行遍历(本文使用)
for(var k in files)
      {        //文件的重定向 存到服务器上
         fs.rename(files[k].path,"./files/"+files[k].name);      //很多文件的时候使用for in循环来进行遍历 此时 k是files对象的某个索引 或者是后面提到的FormData.append
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值