文件上传

  1. 安装:npm install multer --save

  2. 导入

    let multer=require('multer')
    let fs=require('fs')
    
  3. 初始化上传对象

    // 配置上传对象,上传到当前目录下public文件夹的upload文件夹中
    // express快速创建的项目,当前目录相对于服务器启动对应的目录
    let upload = multer({ dest: './public/upload' })
    
  4. 上传文件路由

    // 上传单个文件
    post.post('/upload',upload.single('file'),(req,res)=>{let oldPath=req.file.destination+"/"+req.file.filenamelet newPath=req.file.destination+"/"+req.file.originalname// 更改上传文件的存储名称fs.rename(oldPath,newPath,(err,res)=>{console.log("名字更改成功")})
    })
    
  5. 上传多个文件,请参考 Multer-GitHub

  6. ajax上传

    <!--前端-->
    <form id="uploadform" method="post"><input id="input" type="file" name="file"><button id="submit">提交</button>
    </form>
    <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script>let formData $('#input').change(function (e) {let file = this.files[0]// 创建formData对象,将文件追加到formData对象中   formData= new FormData()     formData.append('file', file)// 预览图片// 生成url地址let imgUrl=window.webkitURL.createObjectURL(file)let img=new Image()img.src=imgUrl$('body').append(img)   })$("#submit").click(function () {$.ajax({url: "http://localhost:3000/users/upload",method: 'POST',data: formData,processData: false,contentType: false,}).then(res=>{console.log(res) // 上传成功})})
    </script>
    
    // 后端
    app.post('/upload',upload.single('file'),(req,res)=>{// 设置路由允许所有源访问,否则会发生跨域问题res.append("Access-Control-Allow-Origin","*")// 设置路由允许所有请求类型访问res.append('Access-Control-Allow-Content-Type',"*")let oldPath=req.file.destination+"/"+req.file.filenamelet newPath=req.file.destination+"/"+req.file.originalnamefs.rename(oldPath,newPath,()=>{})res.json('上传成功')
    })
    

文件下载

  • 后端代码

    app.get('/download', async (req, res) => {res.download("./public/upload/jq.jpg")
    })
    
  • 前端代码
    <button id="download">下载</button>
    <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script >$('#download').click(()=>{window.location.href="http://localhost:3000/users/download"})
    </script>
    

Express学习笔记(八)—— 文件上传与下载相关推荐

  1. java web 文件上传_Javaweb学习笔记10—文件上传与下载

    今天来讲javaweb的第10阶段学习.文件的上传与下载,今天主要说的是这个功能的实现,不用说了,听名字就是外行人也知道肯定很重要啦. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思 ...

  2. 网安学习笔记-1 文件上传

    文件上传漏洞初步认识 什么是文件上传漏洞 指程序对文件的上传未作全面的限制,导致用户可以上传一些超越用户权限的一些文件,可以是木马,shell脚本,病毒等 文件上传漏洞的危害 可以通过文件上传漏洞上传 ...

  3. antd vue表单上传文件_AntDesign vue学习笔记-自定义文件上传

    上传文件时实际可能需要传输一个token. 方法一: 1.查看vue antdesign文档 https://vue.ant.design/components/upload-cn/ 2.使用cust ...

  4. MUI学习笔记之图片上传和预览

    MUI学习笔记之图片上传和预览 源代码是从博客园下载 我一边学习,一边注释,力求理解 <head> <meta charset="UTF-8"> <m ...

  5. Servlet笔记十(文件上传和下载)

    本栏博客目录 Serlvet笔记一(Servlet基础) Servlet笔记二(请求和响应) Servlet笔记三(会话及其会话技术) Servlet笔记四(JSP技术) Servlet笔记五(EL表 ...

  6. java上传视频到七牛云_Java进阶学习:将文件上传到七牛云中

    Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/k ...

  7. wmm的学习日记(文件上传漏洞)

    这个星期正式学习了一下文件上传漏洞,虽然之前也有接触过这样的题目,但还是云里雾里的感觉.现在应该可以不靠题解完完全全靠自己的脑子做一些简单的题目啦.接下来就让我浅浅总结一下吧. 目录 文件上传漏洞简介 ...

  8. JavaWeb学习总结(五十)——文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  9. 小汤学编程之JavaEE学习day05——会话管理、文件上传与下载、Ajax

    一.会话管理 1.HTTP协议     2.会话的概念     3.会话跟踪技术     4.会话跟踪技术分类(四种) 二.文件上传与下载 1.上传     2.下载     3.上传和下载合并优化成 ...

  10. JavaWeb学习总结——文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

最新文章

  1. 利用“队列”解决“窗口混乱”问题
  2. 行业 AI 落地新范式,华为云下午茶等你来聊知识计算
  3. 基于Vuejs+ElementUI的答案录入功能的一些总结
  4. 路由器中虚拟服务器设置,路由器中虚拟服务器设置方法
  5. Py之terminaltables:terminaltables的简介、安装、使用方法之详细攻略
  6. LiveVideoStack线上分享第四季(三):在线教育的音视频架构设计及弱网对抗技术...
  7. 父组件访问子组件中的数据(父子组件通信案例:父组件访问子组件$refs[‘子组件‘],子组件传递数据给父组件(父组件中使用v-model))
  8. 计算机网络——OSI参考模型
  9. 关于H5跳转到小程序和android的方法
  10. Java实训项目11:GUI学生信息管理系统 - 实现步骤 - 创建服务接口
  11. tomcat配置https_「Java」 - Tomcat amp; 配置HTTPS
  12. PHP中include与require的特点和区别说明
  13. pyqt5-控件是否可用
  14. 建站基础知识之CSS 究竟什么来头?
  15. 使用Microsoft Office Visio 2007 绘图
  16. 数据仓库之事实表和维度表
  17. PPT(默认设置快捷键的使用)
  18. APP 兼容性测试是什么?8年测试老鸟告诉你
  19. Java B组蓝桥杯第十届国赛:大胖子走迷宫
  20. U盘安装CentOS7 解决各种问题

热门文章

  1. 搞定Java安装包制作
  2. 遇黑链不惊慌4招轻松破
  3. 洛谷 P1122 最大子树和 题解
  4. Model-Based Value Expansion for Efficient Model-Free Reinforcement Learning(mve)
  5. linux恢复移动硬盘数据恢复,移动硬盘文件误删后用数据恢复软件如何恢复
  6. ART–KOHONEN neural network for fault diagnosis of rotating machinery(翻译)
  7. Qt实现天气信息显示和温度曲线绘制
  8. 对只含英文字母的字符串按字母顺序排序,相同的字母大写在前,小写在后
  9. cocos2d-x中怎么添加血量条
  10. goZero入门使用及注意事项