美文网首页
formidable模块的方法和属性

formidable模块的方法和属性

作者: bo_bo_bo_la | 来源:发表于2018-01-23 21:47 被阅读16次

formidable模块实现了上传和编码图片和视频。它支持GB级上传数据处理,支持多种客户端数据提交。

  1. 引入formidable模板
var http = require("http");
var fs = require("fs");
var url = require("url");
var formidable = require("formidable");
  1. 创建服务器,然后通过GET方式获取到URL,继而找到我们在前台输入的路径
var pathname = url.parse(req.url,true).pathname;
  1. 创建一个名为upload的HTML,通过form实现图片上传
<form action="/upload" method="post" enctype="multipart/form-data">
        姓名:<input type="text" name="username"><br />
        年龄:<input type="text" name="age"><br />
        图像:<input type="file" name="img"><br />
        <input type="submit" value="提交"><br />
    </form>
  1. 通过pathname可以判断用户是否提交信息。

var form = new formidable.IncomingForm();创建一个form表单

form里面的parse方法解析node.js中request请求中包含的form表单提交的数据,回调函数里面会有我们在前端提交的字段(fileds),以及图片的详细信息(files)。
返回的字段是一个对象,如果想保存到文档里面,需要解析成字符串。

如果想吧上传后的图片保存到文件夹里面,我们首先要回的图片的路径,然后看是否有这个文件夹,如果没有创建一个文件夹,将图片保存到该路径下,并已该图片的原始名命名

if(pathname == "/upload"){
        var form = new formidable.IncomingForm();
        form.parse(req,function (err,fileds,files) {
            if(err){
                return console.log(err);
            }else{
                var dataFileds = JSON.stringify(fileds);
                fs.writeFileSync("22.txt",dataFileds);
                console.log(files);
                var rs = fs.createReadStream(files.img.path);
                if(!fs.existsSync("img")){
                    fs.mkdirSync("img");
                }
                var ws = fs.createWriteStream("./img/"+files.img.name);
                rs.pipe(ws);
                rs.on("end",function () {
                    res.setHeader("Content-type","text/html;charset=utf-8")
                    res.write("上传成功");
                    res.end();
                })
            }

相关文章

  • formidable模块的方法和属性

    formidable模块实现了上传和编码图片和视频。它支持GB级上传数据处理,支持多种客户端数据提交。 引入for...

  • 文件上传下载

    shp文件上传,formidable 安装formidable: 安装unzip模块 上传一个shp压缩文件至服务...

  • Express中关于formData对象接收的模块

    使用express-formidable模块 引入: 接收请求:

  • formidable处理node.js的post请求

    formidable Node.js模块,用于解析表单数据. 下载并引入 在路由中使用 formidable上传文...

  • ES5 VS ES6

    模块引用 组件化 组件方法 属性类型和默认属性 state

  • 十天上手Node+KOA(3)

    发布任务~一、path模块二、url模块三、formidable包 一、path模块 path 模块提供用于处理文...

  • python 模块

    容器 --- 数据的封装函数 ---语句的封装类 --- 方法和属性的封装模块 --- 模块就是程序 导入模块 ...

  • javaScript面向对象

    面向对象的理解: 面向对象可以把程序中的关键模块视为对象,而模块拥有属性和方法。这样我们一些属性和方法封装起来,日...

  • node学习笔记(1):module.exports和expor

    exports 对象是当前模块的导出对象,用于导出模块公有方法和属性。别的模块通过 requir...

  • 8.自省反射 和 类内置方法

    反射四个方法的使用: 反射的用处: 动态增加属性,包括数据属性和方法属性 动态导入模块方式1:__import__...

网友评论

      本文标题:formidable模块的方法和属性

      本文链接:https://www.haomeiwen.com/subject/ciueaxtx.html