Node.js上传文件

Posted tianranhui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js上传文件相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
<script type="text/javascript">
  var input = document.querySelector(input);
  var img = document.querySelector(img);

  input.onchange = function () {
  //获取文件
  var file = this.files[0];
  //创建读取文件对象
  var reader = new FileReader();
  //读取文件
  reader.readAsDataURL(file);
  //在回调函数中修改Img的src属性
  reader.onload = function () {
      console.log(reader.result);
      img.src = reader.result;
  }
}
</script>

</head>
<body>
    <h3>文件上传:</h3>
    <img id="imghead" width=100% height=auto border=0 src=a1.png>
    <form action="/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="imageFile" />
        <br />
        <input type="submit" value="上传文件" />
    </form>
</body>
</html>

 

 

 

 

 

 

 

 下载代码

 

 

var fs = require(fs);
var express = require(express);
const bodyParser=require(body-parser);
const multer=require(multer);
var multerObj = multer({dest: uploads/});
const pathLib=require(path);
var   app= express();
/*
[ { fieldname: ‘imageFile‘,
    originalname: ‘u=685824479,2631081864&fm=27&gp=0.jpg‘,
    encoding: ‘7bit‘,
    mimetype: ‘image/jpeg‘,
    destination: ‘uploads/‘,
    filename: ‘d92bb2e42b0a18262e5b384b61ebffd2‘,
    path: ‘uploads\\\\d92bb2e42b0a18262e5b384b61ebffd2‘,
    size: 9907 } ]
*/
app.use(multerObj.any());
  // 单域单文件上传:input[file]的 multiple != "multiple"
app.post(/upload, function(req, res) {


  var ext=pathLib.parse(req.files[0].originalname).ext;

  var oldPath=req.files[0].path;
  var newPath=req.files[0].path+ext;
  var newFileName=req.files[0].filename+ext;
  fs.rename(oldPath, newPath, (err)=>{
    if(err){
      res.status(500).send(files opration err).end();
    }
    else{
    res.redirect(/index);

    }
  });



});

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

app.listen(8080);

 

以上是关于Node.js上传文件的主要内容,如果未能解决你的问题,请参考以下文章

HTML + Node.js 文件上传

Node.js——异步上传文件

使用 Multer 将 csv 文件上传到 Node.js 时出现意外字段

node.js使用multiparty上传文件

Node.js 文件上传(Express 4、MongoDB、GridFS、GridFS-Stream)

使用 Express 和 Node JS 在 MongoDB 中上传文本文件