node中文件的上传

news2024/9/21 18:31:33

node基于Express项目实现文件的上传

1、FormData对象:以对象的方式来表示页面中的表单,又称为表单对象。以key-value的方式来保存数据,XMLHttpRequest对象可以轻松的表单对象发送的服务器端;

(1)使用构造函数实例化对象

//将页面中的表单form转换成FormData对象(即将表单数据转换成key-value对)
let  formdata = new FormData(form); 

(2)常用的API:

​ formData.append(key,value):追加数据。向formdata中追加key-value

 formData.get(key):获取key对应的值

​ formData.delete(key):删除key对应的值

 ​formData.has(key):判断formdata中是否有key

2、node使用formidable模块实现文件上传

(1)安装:npm install formidable

(2)创建Formidable.IncomingForm对象:本质是一个表单对象

​         let form = new Formidable.IncomingForm()

​ (3)Formidable.IncomingForm对象的属性:

        ​ form.encoding : 设置字符集

        ​ form.uploadDir:设置上传文件的保存路径

        ​ form.keepExtensions:true,表示上传时保留原来的扩展名

 (4)Formidable.IncomingForm对象的方法:

​         form.parse(request, [callback]):转换请求中的表单数据

(5)Formidable.File对象的属性

​         size:上传文件的大小

​         path:上传文件的路径

​         type:上传文件的类型

​         name:上传的文件名

3、示例:

(1)前端页面包含表单的所有数据(包含头像文件),代码如下

html:

 js中对数据进行打包,代码如下

            // 注册按钮
            $('.btn_reg').bind('click', () => {
                //将表单数据打包至formdata对象中
                let formdata = new FormData();
                //使用对象的append方法将数据以键值对的形式保存
                formdata.append('registerName', $('.userName').val());
                formdata.append('registerPhone', $('.userPhone').val());
                formdata.append('registerPwd', $('.password').val());
                formdata.append('registerSex', $('.uerSex').val());
                formdata.append('registerEmail', $('.userEmail').val());
                formdata.append('headImage', $('#file')[0].files[0]);
                
                //使用jQery的ajax
                $.ajax({
                    //后台注册接口
                    url: 'http://localhost:8099/movieUser/addUser',
                    type: 'post',
                    data: formdata,
                    cache: false,
                    contentType: false,
                    processData: false,
                    success: function (res) {
                        if (res.code == 2000) {
                            window.parent.location.reload();  //刷新页面
                        }
                    }
                })
             
            });

(2)后台服务控制层中使用formidable模块接收数据

 对应dao层操作数据库的函数

 //保存用户信息(向数据库中增加记录)
    insertUser: async (user)=>{//user参数,由服务层对表单请求对象进行封装,并传入
        const result = await movie_userModel.create(
            {
                user_name:user.name,
                password: user.password,
                user_email:user.email,
                user_sex:user.sex,
                user_phone: user.phone,
                head_portrait: user.head_portrait,//头像上传服务器保存的地址
                register_time: user.time,
            }
        );
        return result;
    },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/68080.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图解LeetCode——1775. 通过最少操作次数使数组的和相等(难度:中等)

一、题目 给你两个长度可能不等的整数数组 nums1 和 nums2 。两个数组中的所有值都在 1 到 6 之间(包含 1 和 6)。 每次操作中,你可以选择 任意 数组中的任意一个整数,将它变成 1 到 6 之间 任意 的值(包含 1 和 6&a…

【vim】Darcula 配色设置

因为本人一直习惯了用 Jetbrains 家的产品,而且一直独钟 Dracula 配色,因此想要在 Git Bash 中为 vim 配一款 Dracula 配色。本博客将详细介绍如何为 vim 配置暗系主题 Dracula。 一、安装 Dracula 在 Dracula 的官网其实已经给出了关于如何在 vim 中配…

夯实算法-课程表

题目:LeetCode 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必…

Linux系统编程5——Socket编程(网络通信)

文章目录前言一、套接字二、基础知识三、网络套接字函数3.1、struct sockaddr3.2、socket函数3.3、bind函数3.4、listen函数3.5、accept函数3.6、connect函数3.7、读取/发送数据函数3.8 客户端服务器通信demo四、select函数1、TCP状态简介2、端口复用2.1、setsockopt函数3、半关…

云之道知识付费v1.5.4小程序+前端(含pc付费插件)

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 云之道知识付费v1.5.4小程序前端(含pc付费插件) 版本号:1.5.4 – 商用无限开 无需重新上传小程序 【修复】上一版本公众号版本打开白屏问题 版本号&a…

【C语言】函数三要素,变量作用域、生存周期、存储类型

目录 写在前面 一、函数的用法 1、声明 2、调用 3、定义 形参与实参类型不一致 形参与实参类型一致 函数值类型与返回值类型不一致 函数值类型与返回值类型一致 二、变量的作用域与生存周期 三、变量的储存类型(auto,extern,static,register)…

AI虚拟人千亿级市场来袭,景联文科技提供全方面数据采集标注服务

“AI虚拟人通过语音、文字、视觉的理解和生成,结合动作识别、环境感知等多种方式可与人进行互动。AI虚拟人中运用到的强大算法需要高质量标注数据不断对其进行优化训练,景联文科技提供全方面数据采集标注服务。” 11月18日,科大讯飞在第五届世…

行为型模式 - 访问者模式Visitor

学习而来,代码是自己敲的。也有些自己的理解在里边,有问题希望大家指出。 行为型模式,我之所以把他放到第一个,是因为它号称是GoF中最难的一个。 模式的定义与特点 在访问者模式中(Visitor Pattern)中&…

pandasGUI:一款开源的功能异常强大的数据可视化分析工具

在很早之前关于可视化的描述中,我们介绍过一款D-table的数据分析操作工具。和D-table的操作相似,还有一款pandasGUI的开源工具更加强势。 Pandasgui是一个开源的python模块,它为pandas创建了一个GUI界面,我们可以在其中使用panda…

Impact of Problem Decomposition on Cooperative Coevolution

0、论文背景 本文在CCVIL的基础上,讨论了问题的分解效果对于CC框架的影响。由于VIL本身是一项计算成本昂贵的任务,因此应该避免在VIL上花费过多的时间而对CCEA没有显著的好处。我们进行实证研究来解决三个密切相关的问题: 1)更好的问题分解会…

STC 51单片机58——旋转LED

STC11F LED部分: #include "STC11.h" #define u8 unsigned char #define u16 unsigned int //全亮 //u8 code Picture1[8]{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f} ; //u8 code Picture2[8]{0xe7,0xdb,0xbd,0x7e,0x7e,0xbd,0xdb,0xe7}; //u8 code P…

阿里云的工程师又闯祸了,github上紧急修复

最近不少用户使用阿里云提供的测试用例出现了被删除了用户目录下的所有文件,项目地址是:https://github.com/aliyun/aliyun-clialiyun-cli/cli/completion_installer_test.goLines 87 to 99 in 550ccb6path : filepath.Join(u.HomeDir, ".bashrc&qu…

求知 | 聊聊Android资源加载那些事 - Resource的初始化

Hi,你好 😃 引言 在上一篇,求知 | 聊聊Android资源加载的那些事 - 小试牛刀 中,我们通过探讨 Resource.getx() ,从而解释了相关方法的背后实现, 明白了那些我们日常调用方法的背后实现。 那么,不知道你有没有好奇 context.reso…

【蓝桥杯国赛真题07】python杨辉三角形 蓝桥杯青少年组python编程 蓝桥杯国赛真题解析

目录 python杨辉三角 一、题目要求 1、提示信息 2、编程实现 3、输入输出

蓝桥杯嵌入式Debug

文章目录前言一、Debug是什么二、如何调试1.重要调试按键介绍2.其他按键介绍三、监视变量窗口总结前言 这一篇文章是非常重要的,掌握了这篇文章有助于大家在比赛中快速找到错误。 一、Debug是什么 Debug是一种程序,一种调试工具,说白了就是…

Elasticsearch:如何在 Elastic Agents 中配置 Beats 来采集定制日志

在我之前的文章 “Observability:使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0”,我详细地描述了如何安装 Elasticsearch,Stack 及 Elastic Agents 来采集系统日志及指标。很多开发者可能会有疑问,在我们的实际使用中…

陈都灵《我们当打之年》热播《关索岭》上热搜,温州人爱望京卡牌

最近,电视连续剧《我们的当打之年》,正在各大卫视台热播,一起热起来的还有该剧主演陈都灵。说起主演陈都灵,她虽然不是正宗的电影学院科班出身,但是她的演技却透露着灵气,也给人以真实的感觉。 陈都灵无疑是…

[附源码]Python计算机毕业设计Django学习帮扶网站设计与实现

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

2023年哪些渲染器更好用?3D新手适合的渲染器汇总

现在很多人都使用3D软件来创作自己的作品,所以渲染器的使用必不可少。有许多流行的渲染器,包括 V-Ray、Octane、Arnold、Corona、RedShift。对于许多 3D 新手来说,哪种渲染器最好? 这些渲染器的原理基本相同,只是操作…

大学免费查题接口系统

大学免费查题接口系统 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点…