美文网首页
15 - formidable的简单的使用

15 - formidable的简单的使用

作者: 小草莓蹦蹦跳 | 来源:发表于2017-10-24 21:06 被阅读0次
    • formidable的简单的使用
      • formidable是第三方包,用于处理上传的文件

      • 使用时要用npm下载,然后导入文件中


    • 使用formidable处理上传的文件(post请求)
      1. 导入formidable第三方包
     var formidable = require('formidable');
    
      1. 创建form表单
     var form = new formidable.IncomingForm();
    
      1. 使用form表单解析对应的请求
      • fields:表示所有的域,就是和input相关的东西包括 checkbox radioBox

      • files:表示所有的和上传文件相关的内容

    form.parse(req,function (err, fields, files) {
                 console.log(files);
                 console.log(fields);
                 console.log(files.tupian.path);
             })
    
      1. 我们需要在解析之前设置对应的上传的图片的路径
     form.uploadDir = "./upload";
    

    • form表单为:form.html
    <!--设置的action为dopost:可以确定提交的url地址,
    enctype:multipart/form-data:如果是上传或者下载就利用前面设置的格式
    注意:一定要设置
    -->
    <form action="http://127.0.0.1:3000/dopost" method="post" enctype="multipart/form-data">
    
        <!--<form action="http://127.0.0.1:3000/dopost" method="post">-->
        <p>
            姓名 : <input type="text" name="name">
        </p>
        <p>
            性别 :
            <input type="radio" name="sex" value="男">男
            <input type="radio" name="sex" value="女">女
        </p>
        <p>
            爱好:
            <input type="checkbox" name="hobby" value="睡觉" />睡觉
            <input type="checkbox" name="hobby" value="吃饭" />吃饭
            <input type="checkbox" name="hobby" value="足球" />足球
        </p>
        <p>
            图片:
            <input type="file" name="tupian" />
        </p>
        <p>
            <input type="submit" />
        </p>
    </form>
    
    • 处理post请求和文件上传的代码:
    var http = require('http');
    
    var formidable = require('formidable');
    
    var server = http.createServer(function (req, res) {
    
        if (req.url == '/dopost' && req.method.toLowerCase() == 'post'){
    
            /*1.创建form表单*/
            var form = new formidable.IncomingForm();
    
            /*1.1.我们需要在解析之前设置对应的上传的图片的路径*/
            form.uploadDir = "./upload";
    
            /*2.使用form表单解析对应的请求*/
            form.parse(req,function (err, fields, files) {
                /*fields:表示所有的域,就是和input相关的东西包括 checkbox radioBox
                 * files:表示所有的和上传文件相关的内容*/
                console.log(fields);
                console.log(files);
                console.log(files.tupian.path);
            })
        }
    
        res.end('成功');
    });
    
    server.listen(3000,'127.0.0.1');
    

    相关文章

      网友评论

          本文标题:15 - formidable的简单的使用

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