成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用NodeJS將文件或圖像上傳到服務器

開發 后端
在這篇文章中,我們將看到如何使用NodeJS上傳文件或圖像到服務器。這里我們將使用Visual Studio和以下NPM包用于我們的開發過程。

在這篇文章中,我們將看到如何使用NodeJS上傳文件或圖像到服務器。這里我們將使用Visual Studio和以下NPM包用于我們的開發過程。

  • express
  • multer
  • body-parser

我們將簡要解釋這些包的使用。眾所周知,NodeJS是一個基于Chrome V8 JavaScript引擎的運行時環境,用于服務器端和網絡應用程序。并且它是支持跨平臺的開放資源。NodeJS應用程序用純JavaScript編寫。如果你是NodeJS新手,那么我強烈建議你閱讀我以前關于Node JS的帖子。

下載源代碼

使用Node JS上傳文件或圖像到服務器

背景

幾年前,如果你需要上傳任何文件或圖像到服務器,那么你得完全依賴于服務器端語言如C#和PHP。在JS革命之后,一切都改變了。今天我將告訴你如何使用NodeJS上傳文件到服務器,甚至不需要寫一行服務器端代碼。希望你會喜歡。

創建空白的Node JS Web應用程序

在package.json中設置依賴關系

開始之前,我們首先要設置我們的依賴關系。為此,請打開package.json文件并粘貼代碼。

{
  "name": "node_js_file_upload",
  "version": "0.0.1",
  "description": "Node_JS_File_Upload",
  "main": "server.js",
  "dependencies": {
    "body-parser": "^1.15.2",
    "express": "^4.14.0",
    "multer": "^1.2.0"
  },
  "author": {
    "name": "Sibeesh"
  }
}

現在,運行NPM install命令,如下所示。

npm install

運行該命令后,可以看到解決方案中安裝了依賴關系。

現在我們可以理解這些依賴關系是用來干什么的了。

express

根據Express Team,Express是一個極小且靈活的Node.js Web應用程序框架,為Web和移動應用程序提供了一組強大的功能。Express提供了基本Web應用程序功能的一個薄層,不會掩蓋你知道和喜歡的Node.js功能。你可以隨時在這里了解更多關于Express Package的信息。

multer

Multer是一個用于處理multipart / form-data的node.js中間件,主要用于上傳文件。它構建在busboy基礎上以提高效率。點擊這里閱讀更多關于multer包。

開始使用依賴關系

你可以按如下所示創建依賴關系的實例。

var Express = require('express');
var multer = require('multer');
var bodyParser = require('body-parser');
var app = Express();
app.use(bodyParser.json());

然后,創建說明應該在哪里以及如何保存文件/圖像的storage。

var Storage = multer.diskStorage({
    destination: function (req, file, callback) {
        callback(null, "./Images");
    },
    filename: function (req, file, callback) {
        callback(null, file.fieldname + "_" + Date.now() + "_" + file.originalname);
    }
});

每個文件包含以下信息:

fieldname:在窗體中指定的字段名

originalname:用戶計算機上文件的名稱

encoding:文件的編碼類型

mimetype:文件的MIME類型

size:文件的大?。ㄒ宰止潪閱挝唬?/p>

destination:保存文件的文件夾

filename:目標文件的名稱

path:上傳文件的完整路徑

buffer:整個文件的Buffer

現在請創建multer對象如下。

var upload = multer({ storage: Storage }).array("imgUploader", 3); //Field name and max count

這里multer接受我們在上一步中創建的storage作為參數。函數

array(fieldname[, maxCount])

接受文件數組,所有文件名都為fieldname。

現在我們該寫post和get請求了:

app.get("/", function (req, res) {
    res.sendFile(__dirname + "/index.html");
});

app.post("/api/Upload", function (req, res) {
    upload(req, res, function (err) {
        if (err) {
            return res.end("Something went wrong!");
        }
        return res.end("File uploaded sucessfully!.");
    });
});

這里/ api / Upload是我們將要設置的操作名稱,在我們馬上就會創建的HTML頁面上。***,但并非最不重要的是,我們需要確保應用程序正在偵聽我們的特定端口,在本例下,為port 2000。

app.listen(2000, function (a) {
    console.log("Listening to port 2000");
});

創建HTML頁面并設置上傳

你可以使用jquery-3.1.1.min.js和jquery.form.min.js的引用創建如下所示的頁面。

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Upload images to server using Node JS</title>
    <script src="Scripts/jquery-3.1.1.min.js"></script>
    <script src="Scripts/jquery.form.min.js"></script>

</head>
<body>
    <form id="frmUploader" enctype="multipart/form-data" action="api/Upload/" method="post">
        <input type="file" name="imgUploader" multiple />
        <input type="submit" name="submit" id="btnSubmit" value="Upload" />
    </form>
</body>
</html>

請注意,用于表單的ecctype必須是multipart / form-data,操作必須與我們在API中設置的相同。

創建Ajax提交事件

現在創建ajax事件,在事件中我們將調用我們的API。

<script>         $(document).ready(function () {             var options = {                 beforeSubmit: showRequest,  // pre-submit callback                 success: showResponse  // post-submit callback             };              // bind to the form's submit event             $('#frmUploader').submit(function () {                 $(this).ajaxSubmit(options);                 // always return false to prevent standard browser submit and page navigation                 return false;             });         });          // pre-submit callback         function showRequest(formData, jqForm, options) {             alert('Uploading is starting.');             return true;         }          // post-submit callback         function showResponse(responseText, statusText, xhr, $form) {             alert('status: ' + statusText + '\n\nresponseText: \n' + responseText );         }     </script>

ajaxSubmit函數是插件jquery.form.min.js的一部分,因此請確保你已經包含它。

運行應用程序

現在請運行你的應用程序。在運行應用程序之前,你總是可以將腳本文件設置為啟動文件,要設置的話就右鍵單擊項目并單擊屬性。

現在你可以打開命令提示符,你可以在命令提示符處手動定位項目,也可以使用“Open command prompt here”選項。要選擇的話,請右鍵單擊你的項目并選擇如下選項。

現在在命令提示符中鍵入node server.js,這將確保你的服務器正在運行。如果一切ok的話,你可以看到如下窗口。

現在我們可以運行我們的網頁,因為服務器已經準備就緒,請訪問瀏覽器并輸入網址http://localhost:2000。使用我們創建的文件上傳器選擇幾個文件。

如果單擊提交,你可以看到我們正在調用我們的方法操作,并且文件已上傳。

你總是可以下載附帶的源代碼以查看完整的代碼和應用程序。編碼快樂!

結論

不知道我有沒有遺漏的地方?你覺得這篇文章有用嗎?希望你喜歡這篇文章。歡迎給出你寶貴的建議和反饋。

譯文鏈接:http://www.codeceo.com/article/nodejs-upload-file-to-server.html
英文原文:Upload Files Or Images To Server Using Node JS
翻譯作者:碼農網 – 小峰

責任編輯:張燕妮 來源: 碼農網
相關推薦

2019-07-03 14:26:10

Linux服務器方法

2022-11-10 15:17:43

Windows文件Linux

2022-03-01 20:33:50

服務web項目

2009-09-17 18:05:51

Nis服務器

2012-02-02 09:39:04

維基解密服務器公海

2020-09-10 09:05:29

UDP服務器Nodejs

2015-10-09 09:41:24

HTTP網絡協議文件傳輸

2015-10-10 16:46:14

HTTP網絡協議文件傳輸

2015-09-28 13:39:13

Http網絡協議HTTP

2012-03-06 09:17:31

思科刀片服務器IBM

2021-03-09 09:35:09

鴻蒙HarmonyOS應用開發

2015-09-29 09:25:20

HTTP網絡協議

2015-10-08 09:38:24

HTTP網絡協議文件傳輸

2022-11-01 16:20:56

Java圖像文件圖像文件類型

2010-05-21 17:06:54

定制化服務器

2024-03-14 10:51:13

服務器技術.NET Core

2020-11-06 08:13:03

服務器Nodejs客戶端

2011-08-18 16:03:34

iPhone上傳圖片

2021-05-18 09:01:09

Windows操作系統NodeJs服務器

2025-03-28 05:10:00

Spring上傳大文件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷综合五月天 | 久草在线| 337p日本欧洲亚洲大胆精蜜臀 | 久久久精品 | 日韩久草 | 超碰人人艹 | 日本 欧美 国产 | 99视频在线免费观看 | 福利精品 | 久久久久久久一区 | 日本a v在线播放 | 亚洲精品久久久久中文字幕二区 | 91不卡 | 成人综合一区二区 | 黄色毛片在线观看 | 九九热在线观看 | 欧美xxxx黑人又粗又长 | 人人做人人澡人人爽欧美 | 欧美黄色一级毛片 | 午夜欧美a级理论片915影院 | www.久久99 | 一区二区三区成人 | 日韩欧美在线一区 | 在线色网| 欧美精品网站 | 久久久久亚洲精品 | 一区福利视频 | 国产精品视频500部 a久久 | 国产精品久久久乱弄 | 亚洲一区电影 | 日本精品一区二区三区在线观看视频 | 精品一区二区三区在线观看国产 | 成人精品福利 | 中文字幕视频一区 | 人人看人人射 | 羞羞网站在线观看 | 成人中文字幕在线观看 | 91视频在线观看 | 精品一二三区 | 成人精品网 | 国产欧美精品区一区二区三区 |