分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

Node07 - 文件上传

发布时间:2023-09-06 01:30责任编辑:白小东关键词:Node文件上传

1、from表单中属性  =>  enctype  

    参数1:application/x-www-form-urlencoded  =>  只能上传值

    参数2:multipart/form-data  => multipart: 分成多个部分,有可能上传多个文件,form-data:上传的是真正的表单数据,不仅仅是指一些值

    参数3:text/plain  =>   纯文本(少见)

2、bodyParser  =>  只能处理 urlencoded 数据

    from表单中 :application/x-www-form-urlencoded(有效),multipart/form-data(无效)

3、Node处理(multipart/form-data 表单)的中间件  =>  multer 

  (01)、下载引用  =>  cnpm install multer

  (02)、使用方法  =>

//nodejs 代码const express = require(‘express‘);const bodyParser = require(‘body-parser‘);const multer = require(‘multer‘);//需要先定义一个multer对象,multer里有好多方法,如any,single//single => ?指定某个上传文件//any ?=> ?指上传所有文件// dest => ?指定文件的上传路劲var objMulter = multer({dest: ‘./www/upload/‘});var server = express();//指定上传input-file-name=f1 的文件//server.use(objMulter.single(‘f1‘));server.use(objMulter.any());server.post(‘/‘, function (req, res) { ???//req。body: 上传的值 ???//req.files: ?上传的文件 ???console.log(req.files);});server.listen(8080);
<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title>Title</title></head><body> ???<form action="http://localhost:8080/" method="post" enctype="multipart/form-data"> ???????文件 <input type="file" name="f1"> <br> <br> ???????<input type="submit" value="上传"> ???</form></body></html>
<!--返回结果--> ???[ { fieldname: ‘f1‘, <!--表单叫什么--> ???originalname: ‘1号-马擎.jpg‘,<!--原始文件名--> ???encoding: ‘7bit‘,<!--编码--> ???mimetype: ‘image/jpeg‘,<!--文件类型。(很容易欺骗的)--> ???<!--保存在磁盘中,占用内存。--> ???buffer: <Buffer ff d8 ff e1 05 16 45 78 69 66 00 00 49 49 2a 00 08 00 00 00 09 00 0f 01 02 00 06 00 00 00 7a 00 00 00 10 01 02 00 0f 00 00 00 80 00 00 00 1a 01 05 00 ... >, ???????size: 4272195 } ]<!--大小-->

    (03)、当   var objMulter = multer();加入指定文件上传路径的时候返回数据发生变化 ,dest:代表指定文件上传位置  =>   var objMulter = multer({dest: ‘./www/upload/‘});  

<!--返回结果--> ???[ { fieldname: ‘f1‘, ???originalname: ‘1号-马擎.jpg‘, ???encoding: ‘7bit‘, ???mimetype: ‘image/jpeg‘, ???destination: ‘./www/upload/‘,<!-- ?--> ???filename: ‘ed8c4abdc9216167741f27b6f78f17c2‘,<!-- 上传的文件 --> ???path: ‘www\\upload\\ed8c4abdc9216167741f27b6f78f17c2‘,<!-- 上传文件地址 --> ???size: 4272195 } ]

04、上传文件名更改  =>  fs.rename()

     参数1:原来文件名

    参数2:更改文件名

    参数3:异步回调函数

const fs = require(‘fs‘);fs.rename(‘a.txt‘, ‘b.txt‘, function(err){ ???console.log(err);});

05、解析文件路径  =>  path.parse(文件路径)

    (01)、dir  =>  文件路径

    (02)、base  =>  文件名部分

    (03)、ext  =>  文件扩展名

const path = require(‘path‘);var str = ‘C:\\Users\\U\\Desktop\\CZ-node\\node15-fileUplode\\file_uplode.html‘;var obj = path.parse(str);console.log(obj);
<!--返回结果--> ???{ root: ‘C:\\‘,<!-- ?--> ???dir: ‘C:\\Users\\U\\Desktop\\CZ-node\\node15-fileUplode‘,<!-- 文件路径 --> ???base: ‘file_uplode.html‘,<!-- 文件名部分 --> ???ext: ‘.html‘,<!-- 扩展名 --> ???name: ‘file_uplode‘ }<!-- 文件名不包含扩展名 -->

      

Node07 - 文件上传

原文地址:http://www.cnblogs.com/patriot/p/8027987.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved