Expressjs教程

Express.js 文件上传

Express.js文件上载

在Express.js中,文件上载由于其异步特性和联网方法而有些困难。
可以做到通过使用中间件来处理多部分/表单数据。可以使用多种中间件,例如multer,connect,body-parser等。
让我们以一个示例来演示在Node.js中上传文件。在这里,我们使用中间件" multer"。
创建一个包含以下文件的文件夹" jtp文件上载":
Express.js文件上载1
上载: : 这是一个空文件夹,即已创建,用于存储上载的图像。
包: 这是JSON文件,具有以下数据:
文件: package.json
{
  "name": "file_upload",
  "version": "0.0.1",
  "dependencies": {
    "express": "4.13.3",
    "multer": "1.1.0"
  },
  "devDependencies": {
    "should": "~7.1.0",
    "mocha": "~2.3.3",
    "supertest": "~1.1.0"
  }
}
文件: index.html
<html>
  <head>
    <title>File upload in Node.js by lidihuo</title>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.form/3.51/jquery.form.min.js"></script>
  <script>
  $(document).ready(function() {
     $('#uploadForm').submit(function() {
     $("#status").empty().text("File is uploading...");
        $(this).ajaxSubmit({
            error: function(xhr) {
                status('Error: ' + xhr.status);
            },
            success: function(response) {
          console.log(response)
          $("#status").empty().text(response);
            }
  });
  return false;
    });    
});
  </script>
  </head>
  <body>
      <h1>Express.js File Upload: by lidihuo</h1>
      <form id="uploadForm" enctype="multipart/form-data" action="/uploadlidihuo" method="post">
       <input type="file" name="myfile" /><br/><br/>
       <input type="submit" value="Upload Image" name="submit"><br/><br/>
       <span id="status"></span>
      </form>
  </body>
</html>
文件: server.js
var express  = require("express");
var multer = require('multer');
var app  = express();
var storage  = multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads');
  },
  filename: function (req, file, callback) {
  callback(null, file.originalname);
  }
});
var upload = multer({ storage : storage}).single('myfile');
app.get('/',function(req,res){
      res.sendFile(__dirname + "/index.html");
});
app.post('/uploadlidihuo',function(req,res){
  upload(req,res,function(err) {
    if(err) {
      return res.end("Error uploading file.");
    }
    res.end("File is uploaded successfully!");
  });
});
app.listen(2000,function(){
    console.log("Server is running on port 2000");
});
要安装package.json,请执行以下代码:
npm install
Express.js文件上载2
它将在" jtp文件上载"文件夹中创建一个新文件夹" node_modules"
Express.js文件上载3
已安装依赖项。现在,运行服务器:
node server.js
Express.js文件上载4
打开本地页面http://127.0.0.1:2000/以上传图像。
选择要上载的图像,然后单击"上载图像"按钮。
在这里,您看到该文件已成功上载。您可以在"上传"文件夹中看到上传的文件。
Express.js文件上传7
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4