【问题标题】:Upload files by form using node.js使用 node.js 按表单上传文件
【发布时间】:2021-03-01 20:35:01
【问题描述】:

所以我正在尝试使用静态 html 文件和 node.js 服务器中的表单来上传文件。服务器加载我的静态 HTML 文件并做出响应 - 没有错误,但文件不会上传。以下是我的文件。也许他们缺少什么?

Node.js 文件:

var http = require("http");
var qs = require("querystring")
var fs = require("fs");
var formidable = require('formidable');  

var server = http.createServer(function(req,response){        

    switch (req.method) {
        case "GET":
            fs.readFile("static/index01.html", function (error, data) {        
                if (error) {
                    response.writeHead(404, { 'Content-Type': 'text/html' });
                    response.write("<h1>błąd 404 - file dosen't exiist!<h1>");
                    response.end();
                }
        
                else {
                    response.writeHead(200, { 'Content-Type': 'text/html' });
                    response.write(data);
                    response.end();
                }
            });

            break;

        case "POST":
            function servResponse(){

                let form = formidable({})

                form.uploadDir = "/static/upload/"
                
                form.parse(req, function (err, fields, files) {
                    response.writeHead(200, { 'content-type': 'text/plain;charset=utf-8' });
                    response.end("file uploaded");
                });
            }
            servResponse(req, response)

        break;

} 
})

server.listen(3000, function(){
   console.log("server start on 3000 port")
});

和正文 HTML 文件 - index01.html:

<body>


    <form method="POST">
        <input type="file">
        <button type="submit"> upload</button>
    </form>
    
</body>

【问题讨论】:

    标签: html node.js


    【解决方案1】:
    • 如果没有name,表单控件(包括任何input)将无法成功(并上传数据)
    • 表单无法上传(默认)application/x-www-form-urlencoded 编码的文件,您需要使用enctype 属性明确指定表单应使用multipart/form-data 编码。

    【讨论】:

    • 谢谢,现在可以使用了!很抱歉犯了愚蠢的错误,但我刚刚开始使用 node.js :)
    猜你喜欢
    • 2015-10-07
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 2020-09-15
    • 2018-01-25
    相关资源
    最近更新 更多