Nodejs文件上傳

html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

<form action="http://127.0.0.1:3000/login" method="post" enctype="multipart/form-data">
    <p>
        姓名: <input type="text" name="name">
    </p>
    <p>
        <input type="radio" name="sex" value="男"><input type="radio" name="sex" value="女"></p>
<p>
    <input type="file" name="upload" multiple="multiple">
</p>
    <p>
        <input type="submit" value="Upload">
    </p>

</form>

</body>
</html>

js

var http = require("http");
var querystring = require("querystring");
var formidable = require("formidable");
var util = require("util");
var fs = require("fs");
var path = require("path");
var date = require("silly-datetime");


var server = http.createServer(function(req,res){
    if(req.url == "/login" && req.method.toLowerCase() == "post"){
        //var allData = "";
        //req.addListener("data",function(chunk){
        //    allData += chunk;
        //});
        //
        //req.addListener("end",function(){
        //
        //    var newData = querystring.parse(allData.toString());
        //    //console.log(newData);
        //    console.log(newData.name);
        //    console.log(newData.sex);
        //
        //    res.end("Ok");
        //});


        var form = new formidable.IncomingForm();
        form.uploadDir = "./photo";
        form.type = "jpg";
        form.parse(req, function(err, fields, files) {
            if(err){
                throw err;
            }

            //時間
            var t = date.format(new Date(),"YYYYMMDDHHmmss");

            var ranNum = parseInt(Math.random() * 89999 + 10000);
            //獲取擴展名
            var extName = path.extname(files.upload.name);

            //
            var oldPath = __dirname + "/" +files.upload.path;
            //新地址
            var newPath = __dirname + "/photo/" + t + ranNum + extName;
            //reName
            fs.rename(oldPath,newPath,function(err){
                if(err){
                    throw err;
                }
                res.writeHead(200, {'content-type': 'text/plain'});
                res.end("OK");
            });


        });

    }
});

server.listen(3000,"127.0.0.1");

在本地建立photo文件夾 用於保存文件

發佈了296 篇原創文章 · 獲贊 44 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章