NodeJS 基礎(chǔ)教程

NodeJS Express.js

NodeJS 緩沖&URL

NodeJS MySql

NodeJS MongoDB

NodeJS 文件(FS)

NodeJS 其他

Node.js 文件上傳

Node.js將文件上傳到服務(wù)器

Node.js上傳文件–在此Node.js教程中,我們將學(xué)習(xí)從Web客戶端將文件上傳到Node.js服務(wù)器。換句話說,客戶端可以將文件上傳到Node.js服務(wù)器。

要將文件上傳到Node.js服務(wù)器,請按照以下逐步指南進(jìn)行操作:

  1. 必備模塊

    在此示例中,我們將使用http,fs和強(qiáng)大模塊。http:用于服務(wù)器活動。節(jié)點fs:將上載的文件保存到服務(wù)器上的某個位置。強(qiáng)大:解析html表單數(shù)據(jù)。如果尚未安裝上述模塊,則可以立即使用NPM安裝。在終端中運行以下命令以安裝各個模塊:

    npm install http npm install fs npm install formidable
  2. 準(zhǔn)備HTML表單

    使用以下表單準(zhǔn)備一個HTML頁面(upload_file.html),其中包括用于文件上傳和表單提交的輸入標(biāo)簽。

    <form action="fileupload" method="post" enctype="multipart/form-data">
        <input type="file" name="filetoupload">
        <input type="submit" value="Upload">
    </form>
  3. 創(chuàng)建一個HTTP服務(wù)器

    創(chuàng)建一個偵聽端口8086的HTTP服務(wù)器(您可以更改端口),并為兩個URL提供服務(wù)器,如下所示:

    http.createServer(function (req, res) { 
        if (req.url == '/uploadform') { 
            // 如果請求網(wǎng)址包含“ / uploadform”
            // 用包含上載表格的HTML文件填充響應(yīng)
        } else if (req.url == '/fileupload') { 
            // 如果請求URL包含“ / fileupload”
            // 使用強(qiáng)大的模塊
            // 讀取表單數(shù)據(jù)(包括上載的文件)
            // 并將文件保存到一個位置。
        }  
     }).listen(8086);
  4. 文件保存

    使用強(qiáng)大的模塊,解析表單元素并將文件保存到某個位置。文件上傳后,您可能會顯示一條消息,說明文件上傳成功。最初,文件被保存到一個臨時位置。我們可以使用fs.rename()方法,使用新路徑將文件移動到所需位置。

    var form = new formidable.IncomingForm(); 
    form.parse(req, function (err, fields, files) { 
        // oldpath:文件保存到的臨時文件夾
        var oldpath = files.filetoupload.path; 
        var newpath = upload_path + files.filetoupload.name; 
        // 將文件復(fù)制到新位置
        fs.rename(oldpath, newpath, function (err) { 
            if (err) throw err; 
            // 您可能會用另一個html頁面進(jìn)行響應(yīng)
            res.write('File uploaded and moved!'); 
            res.end(); 
        }); 
     });

Node.js上傳文件示例

以下是Node.js上傳文件的完整工作示例

此示例有兩個文件,如下所示:

upload_file.html

<!DOCTYPE html>
<html>
<head>
<title>Upload File</title>
<style>
    body{text-align:center;} 
    form{display:block;border:1px solid black;padding:20px;} 
</style>
</head>
<body>
    <h1>Upload files to Node.js Server</h1>
 
    <form action="fileupload" method="post" enctype="multipart/form-data">
        <input type="file" name="filetoupload">
        <input type="submit" value="Upload">
    </form>
</body>
</html
var http = require('http'); 
var fs = require('fs'); 
var formidable = require('formidable'); 
 
// 包含上傳表單的html文件
var upload_html = fs.readFileSync("upload_file.html"); 
 
// 將其替換為保存上傳文件的位置
var upload_path = "/home/arjun/workspace/nodejs/upload_file/"; 
 
http.createServer(function (req, res) { 
    if (req.url == '/uploadform') { 
      res.writeHead(200); 
      res.write(upload_html); 
      return res.end(); 
    } else if (req.url == '/fileupload') { 
        var form = new formidable.IncomingForm(); 
        form.parse(req, function (err, fields, files) { 
            // oldpath:文件保存到的臨時文件夾
            var oldpath = files.filetoupload.path; 
            var newpath = upload_path + files.filetoupload.name; 
            // 將文件復(fù)制到新位置
            fs.rename(oldpath, newpath, function (err) { 
                if (err) throw err; 
                // 您可能會用另一個html頁面進(jìn)行響應(yīng)
                res.write('File uploaded and moved!'); 
                res.end(); 
            }); 
        }); 
    }  
 }).listen(8086);

在帶有節(jié)點的終端中運行Node.js腳本文件

arjun@nhooo:~/workspace/nodejs/upload_file$ node nodejs-upload-file.js

上傳的文件保存在node.js文件nodejs-upload-file.js旁邊。您可以在node.js腳本文件中更改此位置。

打開Web瀏覽器(HTTP客戶端),然后單擊URL http:// localhost:8086/uploadform

Node.js上傳文件-HTML表單

點擊瀏覽。

Node.js上傳文件-選擇文件

選擇一個文件,然后單擊“打開”。

Node.js上傳文件-選定的文件

當(dāng)前,文件已上傳到表單。單擊Node.js的Upload按鈕來解析表單元素并保存文件。

Node.js上傳文件-成功

檢查node.js腳本文件旁邊的Node.js服務(wù)器。

arjun@nhooo:~/workspace/nodejs/upload_file$ ls
blur1.jpg  nodejs-upload-file.js  upload_file.html

總結(jié):

在本Node.js教程–  Node.js將文件上傳到服務(wù)器中,我們學(xué)習(xí)了使用強(qiáng)大的fs和http模塊將文件上傳到Node.js服務(wù)器。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清