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

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

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中,首先初始化这个对象得到表单

var form = new formidable.IncomingForm();

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏无原型不设计

【Mockplus教程】复制/克隆

复制是将页面复制到内存中,克隆是直接创建一个和原页面内容一样的新页面。 1. 复制 选中需要复制的页面,鼠标右键单击,弹出的菜单中选择“复制”, 然后在...

32030
来自专栏张善友的专栏

Remoting: Server encountered an internal error

发生这个错误的原因是Remoting的一个配置项: <customErrors> 元素   指示此应用程序域中的服务器通道是否将经筛选的或完整的异常信息返回给本...

20470
来自专栏前端新视界

使用 ng build 构建后资源地址引用错误的问题

最近使用 Angular 做项目的时候,通过 ng build 打包后的资源地址都带有 localhost:4200,百思不得其解,以为是打包的问题。

10600
来自专栏闻道于事

layui动态设置下拉框数据,根据后台数据设置选中

追加下拉框数据: 设置默认选中: 正常的判断这种情况是不行的,因为追加出的数据,在前台显示的并不是同一个下拉框,原来的下拉框被隐藏了 因此需要:根据原来的位置,...

957100
来自专栏DT乱“码”

微信小程序开发指引

官方文档教程1:http://bcoder.cn/wxopen/ 官方文档教程2:http://bing.aliaii.com/wxopen/  本文档将带你一...

576100
来自专栏吴伟祥

java web项目修改favicon.ico图标的方式

修改tomcat小猫图标,设置项目的favicon图标,方式有两种:全局方式和局部方式

18540
来自专栏糊涂一二事

微信小程序文件上传下载应用场景

微信小程序提供了一套在微信上运行小程序的解决方案,有比较完整的框架、组件以及 API,在这个平台上面的想象空间很大。基于微信小程序轻便、快捷的特点,使用腾讯云简...

7.3K20
来自专栏py+selenium

py+selenium IE 定位到元素,但点击不了元素的问题【已解决】

 参考:https://www.cnblogs.com/gihyuqinqin/p/8067685.html

60420
来自专栏小程序解决方案的专栏

通过 WeCOS 进行小程序瘦身

尽管 4 月份微信官方将小程序的大小限制从 1M 放开到 2M,但是对于使用大量图片的小程序(电商等)来说,2M 的限制还是显得拮据。基于这种场景,腾讯云微信小...

2.9K40
来自专栏前端新视界

使用 ng build 构建后资源地址引用错误的问题

13620

扫码关注云+社区

领取腾讯云代金券