nodejs表单提交(上传图片)

nodejs使用form提交表单,上传图片

const http = require("http");
const util = require("util"); //nodejs一些工具
const path = require("path");
const port = require("port");

npm install formidable --save-dev  //上传图片可以使用第三方的包,formidable;使用很方便

const formidable = require("formidable");

http.createServer((req, res) => {
    if(req.url == "/index" && req.method == "post") {
        let form = new formidable.IncomingForm();
        //新建临时存储图片的路径
        form.uploadDir = "./uploads"; 
        form.parse(req, function(err, fields, files) {
            //修改文件名称
            let extname = path.extname(files.avatar.path);//获取图片后缀
            let oldName = files.avatar.name;//获取旧图片名称
            let newName = files.avatar.name  + "./uploads/"+Math.random() * 8999 * 10000 + extname;//图片新名称
            fs.rename(oldName, newName, (err) => {
                console.log("图片名称修改失败");
                return;
            })
            res.writeHead("200",{"Content-Type":"text-plain;charset=utf8"});
             res.write('received upload:\n\n');
             res.end(util.inspect({fields: fields, files: files}));
        })
    }else if(req.url == "/") {
        //根目录,返回HTML文件;可以拼接字符串的方式,`res.end(html)`添加;也可以使用读取HTML文件的方式;
        fs.readFile(__dirname + "./index.html", "utf8", chunk => {
            res.writeHead("200",{"Content-Type":"text/html;"});
            res.end(chunk);
        })
    }
}).listen(port, "127.0.0.1", (err) => {
    if(err) {console.log("服务启动失败,端口被占用");return;}
    console.log(`server is listen on port ${port}`)
})

index.html



    
        
    
    
        

性别:  

爱好:   游泳 乒乓球 敲代码

你可能感兴趣的:(nodejs表单提交(上传图片))