上传文件

enctype:前端设置上传数据的格式

//第一种:键值对
application/x-www-form-urlencoded
//第二种
application/json
//第三种:上传
multipart/form-data

后端接口需要的操作

  1. 下载插件

    npm i multiparty
    
  2. 引入插件(表现成/index.js)

    //引入path插件
    const path = require('path');
    //引入multiparty的下载文件插件
    const multiparty = require('multiparty');
    
    1.第一句:创建multipary对象,uploadDir:指定上传的文件存放的地址
    2.第二局:form.parse
    3.上传的name都叫file
    
  3. 配置插件(表现成/index.js)

    //文件上传
    router.post("/upload", function (req, res) {var form = new multiparty.Form({ uploadDir: "./public/images" });form.parse(req, function (err, fields, files) {if (err) {res.send(err);} else {console.log(files.file);var p = files.file[0].path.substring(files.file[0].path.indexOf("images"));res.send({filename:path.basename(p)});}});
    });
    
  4. commd文件夹里面add.js里面写按钮和图片显示

    <button type="button" class="layui-btn" id="uploadBtn"><i class="layui-icon">&#xe67c;</i>上传图片
    </button>
    <img id="headImg" width="50" height="50" />
    <input type="hidden" name="headImg" >
    
  5. 配置上传文件按钮(add.js)

    let { $, layer,form,table,upload} = layui;
    upload.render({elem:"#uploadBtn",url:"/upload",done(res){console.log("res:",res);//把图片渲染在页面$("#headImg").attr("src","/images/"+res.filename);//设置一个隐藏存放图片的名字$("[name=headImg]").val(res.filename);}
    })
    
  6. 把数据存在数据库里面(students.js,model下面的studensModel.js)

    //增加学生
    router.post('/', async function (req, res) {let { name, age, gender ,cls ,headImg} = req.body;console.log("req.body", req.body);let data = await studentService.add({ name, age, gender ,cls ,headImg});// console.log(data);res.send({ data })
    });
    // headImg:String,
    
  7. 把图片显示在页面

    success(res) {$.ajax({type: "get",url: "/class/all",success(reres) {let str = reres.data.map(item => `<option value="${item._id}">${item.classname}</option>`).join("");// console.log(str);$("[name=recls]").html(str);form.render();console.log(data,data.cls._id,data.headImg);form.val("editContent", {name: data.name,age: data.age,gender: data.gender,recls: data.cls._id});$("#headImg").attr("src","/images/"+data.headImg);upload.render({elem:"#uploadBtn",url:"/upload",done(res){console.log("res:",res);//把图片渲染在页面$("#headImg").attr("src","/images/"+res.filename);//设置一个隐藏存放图片的名字$("[name=headImg]").val(res.filename);}})}});// console.log("res.data.cls",res.data,res.data.cls,res.data.cls.classname);}
    

上传文件upload相关推荐

  1. angularjs上传文件到服务器,AngularJS - 上传文件( Upload File)

    AngularJS - 上传文件( Upload File) 我们提供了上传文件的示例. 为了开发这个应用程序,我们使用了HTML,CSS和AngularJS. 以下示例显示了如何使用AngularJ ...

  2. 电脑操作:把文件上传到kindle,kindle上传文件 ,upload文件到kindle

    可以上传的格式有: You can send the following file types with Send to Kindle for PC: Microsoft Word (.DOC, .D ...

  3. antd 上传进度_antd vue upload组件使用customRequest上传文件显示文件上传进度

    antd-vue上传文件upload组件使用自定义上传方法customRequest无法显示文件上传进度条,如下图红框内的进度条无法显示当前文件上传进度 于是,在网上搜索解决方案: 第一种解决方案是自 ...

  4. webuploader上传文件,后台Java接收

    前台html页面: <!DOCTYPE html> <html> <head> <title>Insert title here</title&g ...

  5. SpringMVC上传文件

    首先自我介绍一下,我是王登高,下面是我的头像: 是不是很帅,我每天照镜子都感觉自己帅. 好了不扯这些没用的,我们进入正题:前两天,自己边学边做遇到的SpringMVC上传文件的问题,用户可以上传图片, ...

  6. JS上传文件(base64字符串和二进制文件流)

    ①以base64字符串上传(使用FileReader对象获取文件的base64字符串) FileReader参考文档: FileReader - Web API 接口参考 | MDN FileRead ...

  7. 万能表单解析工具在xheditor上传文件中的应用

    利用JadePool中的万能表单解析工具cn.jadepool.web.ProcessForm可以轻松解析表单提交的全部信息,甚至可以轻松获取一个未知结构的表单由那些字段组成.以下是在xheditor ...

  8. uniapp中的上传文件及打开文件

    一.先选择文件 let that = this; uni.chooseMessageFile({count: 1,success: res => {console.log(res);//name ...

  9. nodejs + express + multiparty处理上传文件接口:踩坑及总结

    文章目录 一.简单的文件上传 模块 接口 二.multipart/form-data随着表单上传文件 前端 后端 1. multiparty 2.connect-multiparty 在平时工作和自己 ...

最新文章

  1. JS通过正则限制 input 输入框只能输入整数、小数(金额或者现金) 两位小数
  2. 【FPGA】Buffer专题介绍(一)
  3. (转载)(官方)UE4--图像编程----Parallel Rendering Overview
  4. 详解HashMap的内部工作原理
  5. Arduino IDE 如何添加 ESP32 开发板?
  6. 关于拓扑排序的问题-P3116 [USACO15JAN]会议时间Meeting Time
  7. 【并查集】黑魔法师之门(codevs 1995/joyoi-codevs 1995)
  8. 使用Dom4j读取指定文件,并写入指定文件
  9. 关于XShell 启动虚拟机的weblogic并在本地打开oracle-weblogic 有关部署
  10. Docker平台的基本使用方法
  11. httplib模块,测试cdn节点文件同步
  12. Atitit 安全流程法 目录 1. 常见等安全措施方法 2 1.1. 安全的语言 代码法,编译型 java 2 1.2. 安全编码法 2 1.3. 安全等框架类库 api 2 1.4. 加密法 2
  13. 【前端】js代码模拟用户键盘鼠标输入
  14. 项目日报模板_韶州中学项目建设正酣 ,计划明年9月投入使用
  15. 继电保护整定值计算软件_通用型继电保护整定计算软件的分析.pdf
  16. 计算机丢失libcef,无法启动程序,因为计算机中丢失libcef.dll。怎么办?
  17. 前端开发实习面试题(Vue篇)
  18. 蝴蝶效应,青蛙现象,鳄鱼法则,鲇鱼效应,羊群效...
  19. 仿真BPSK调制在AWGN信道下分别使用卷积码和未使用卷积码的性能对比,其中,卷积码的约束长度为7,生成多项式为[171,133],码率为1/2,译码分别采用硬判决译码和软判决译码
  20. win10小技巧(初)

热门文章

  1. python 角点检测_python实现Harris角点检测算法
  2. 辽宁省铁岭市谷歌高清卫星地图下载
  3. js获取时间戳的四种方法
  4. 杂谈(2)为什么穷人家难翻身?
  5. 用python写的开心网收菜偷菜的小工具
  6. DPDK中文-EAL层
  7. 松下Pro7的ModBus通信,F145和F146这两个指令怎么用
  8. Java Web项目运行一直提示ClassNotFoundException
  9. c语言定点数和浮点数的转换,浮点数和定点数的相互转换(浮点数量化为定点)...
  10. 元境X西安博物院重磅合作,元宇宙促进文旅新业态