Form 表单数据处理

Form 表单数据处理

  • 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);
         })

4.我们需要在解析之前设置对应的上传的图片的路径

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');
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CGIC(Common Gateway Interface for C)是一个用于处理 CGI 的 C 语言库。它可以简化 CGI 程序的开发,提供了方便的接口来处理 Web 服务器传递过来的数据,包括表单数据。 使用 CGIC 库处理 form 表单数据的方法如下: 1. 首先,需要在 CGI 程序中引入 CGIC 库的头文件: ``` #include "cgic.h" ``` 2. 在 CGI 程序的主函数中,需要调用 `cgiHeaderContentType` 函数来设置 HTTP 响应头,指明返回的内容类型为 HTML: ``` int main(int argc, char *argv[]) { cgiHeaderContentType("text/html"); //... } ``` 3. 接着,需要使用 `cgiForm*` 函数来获取表单数据,例如: ``` char name[50]; cgiFormString("name", name, sizeof(name)); ``` 上面的代码可以获取表单中名为 "name" 的字段的值,并将其存储在 `name` 变量中。如果表单中没有名为 "name" 的字段,那么 `cgiFormString` 函数会返回一个错误码。 4. 最后,需要将处理后的数据输出到 HTML 页面中,例如: ``` printf("<html><head><title>CGI Example</title></head><body>"); printf("<h1>Hello, %s!</h1>", name); printf("</body></html>"); ``` 上面的代码将处理后的数据输出到 HTML 页面中,其中 `%s` 会被替换为 `name` 变量中的值。 综上所述,使用 CGIC 库处理表单数据需要引入 CGIC 库的头文件,调用 `cgiHeaderContentType` 函数设置 HTTP 响应头,使用 `cgiForm*` 函数获取表单数据,然后将处理后的数据输出到 HTML 页面中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值