前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >node表单文件上传(formidable)实现

node表单文件上传(formidable)实现

作者头像
十月梦想
发布2018-08-29 12:00:10
6120
发布2018-08-29 12:00:10
举报
文章被收录于专栏:十月梦想

在node表单进行上传时候,常规的数据传递没有什么问题,当涉及到文件上传(图片,音视频,文本等)我们发现,接收的仅仅是这个上传的文件名,而非资源本身,这样如何能达到我们的要求呢?此时我们需要引入第三方npm包(formidable)来实现,formidable如何实现文件的上传,接下来通过一段代码简要说明!

代码语言:javascript
复制
const http=require('http');
const formidable=require('formidable');
var util = require("util");
//查询模块
const querystring=require("querystring");
const server=http.createServer(function(req,res){
    res.writeHead(200,{"Content-Type":"text/plain;charset=UTF8"});

    //访问的url且类型是post请求   toLowerCase转小写(保持一致)
    if(req.url=="/info" && req.method.toLowerCase()=="post"){
        var form = new formidable.IncomingForm();
        //上传文件目录
        form.uploadDir = "./upimg";
    //    上传处理
        form.parse(req, function(err, fields, files) {
            if(err){
                throw err;
            }
            //所有的文本域、单选框,都在fields存放;
            //所有的文件域,files
            console.log(fields);//控件
            console.log(files);//文本域
            // res.writeHead(200,{"conten-type":"text/html;charset=utf8"});
            // res.writeHead(200, {'content-type': 'text/plain'});
            console.log(util.inspect({fields: fields, files: files}));
        });
    }
    res.end("成功!success!");

})
server.listen(80,"127.0.0.1")

在formidable中,首先初始化这个对象得到表单

代码语言:javascript
复制
var form = new formidable.IncomingForm();

使用form.uploadDir="上传资源存储路径"

上传处理使用form.parse()对应参数可以查阅api文档或者观察上述代码,返回的files以及fields则能躲到所有上传的资源,对应相对处理实现资源上传!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-7-7,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档