Express学习笔记(八)—— 文件上传与下载
文件上传
安装:
npm install multer --save
导入
let multer=require('multer') let fs=require('fs')
初始化上传对象
// 配置上传对象,上传到当前目录下public文件夹的upload文件夹中 // express快速创建的项目,当前目录相对于服务器启动对应的目录 let upload = multer({ dest: './public/upload' })
上传文件路由
// 上传单个文件 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("名字更改成功")}) })
上传多个文件,请参考 Multer-GitHub
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学习笔记(八)—— 文件上传与下载相关推荐
- java web 文件上传_Javaweb学习笔记10—文件上传与下载
今天来讲javaweb的第10阶段学习.文件的上传与下载,今天主要说的是这个功能的实现,不用说了,听名字就是外行人也知道肯定很重要啦. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思 ...
- 网安学习笔记-1 文件上传
文件上传漏洞初步认识 什么是文件上传漏洞 指程序对文件的上传未作全面的限制,导致用户可以上传一些超越用户权限的一些文件,可以是木马,shell脚本,病毒等 文件上传漏洞的危害 可以通过文件上传漏洞上传 ...
- antd vue表单上传文件_AntDesign vue学习笔记-自定义文件上传
上传文件时实际可能需要传输一个token. 方法一: 1.查看vue antdesign文档 https://vue.ant.design/components/upload-cn/ 2.使用cust ...
- MUI学习笔记之图片上传和预览
MUI学习笔记之图片上传和预览 源代码是从博客园下载 我一边学习,一边注释,力求理解 <head> <meta charset="UTF-8"> <m ...
- Servlet笔记十(文件上传和下载)
本栏博客目录 Serlvet笔记一(Servlet基础) Servlet笔记二(请求和响应) Servlet笔记三(会话及其会话技术) Servlet笔记四(JSP技术) Servlet笔记五(EL表 ...
- java上传视频到七牛云_Java进阶学习:将文件上传到七牛云中
Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/k ...
- wmm的学习日记(文件上传漏洞)
这个星期正式学习了一下文件上传漏洞,虽然之前也有接触过这样的题目,但还是云里雾里的感觉.现在应该可以不靠题解完完全全靠自己的脑子做一些简单的题目啦.接下来就让我浅浅总结一下吧. 目录 文件上传漏洞简介 ...
- JavaWeb学习总结(五十)——文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- 小汤学编程之JavaEE学习day05——会话管理、文件上传与下载、Ajax
一.会话管理 1.HTTP协议 2.会话的概念 3.会话跟踪技术 4.会话跟踪技术分类(四种) 二.文件上传与下载 1.上传 2.下载 3.上传和下载合并优化成 ...
- JavaWeb学习总结——文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
最新文章
- 利用“队列”解决“窗口混乱”问题
- 行业 AI 落地新范式,华为云下午茶等你来聊知识计算
- 基于Vuejs+ElementUI的答案录入功能的一些总结
- 路由器中虚拟服务器设置,路由器中虚拟服务器设置方法
- Py之terminaltables:terminaltables的简介、安装、使用方法之详细攻略
- LiveVideoStack线上分享第四季(三):在线教育的音视频架构设计及弱网对抗技术...
- 父组件访问子组件中的数据(父子组件通信案例:父组件访问子组件$refs[‘子组件‘],子组件传递数据给父组件(父组件中使用v-model))
- 计算机网络——OSI参考模型
- 关于H5跳转到小程序和android的方法
- Java实训项目11:GUI学生信息管理系统 - 实现步骤 - 创建服务接口
- tomcat配置https_「Java」 - Tomcat amp; 配置HTTPS
- PHP中include与require的特点和区别说明
- pyqt5-控件是否可用
- 建站基础知识之CSS 究竟什么来头?
- 使用Microsoft Office Visio 2007 绘图
- 数据仓库之事实表和维度表
- PPT(默认设置快捷键的使用)
- APP 兼容性测试是什么?8年测试老鸟告诉你
- Java B组蓝桥杯第十届国赛:大胖子走迷宫
- U盘安装CentOS7 解决各种问题
热门文章
- 搞定Java安装包制作
- 遇黑链不惊慌4招轻松破
- 洛谷 P1122 最大子树和 题解
- Model-Based Value Expansion for Efficient Model-Free Reinforcement Learning(mve)
- linux恢复移动硬盘数据恢复,移动硬盘文件误删后用数据恢复软件如何恢复
- ART–KOHONEN neural network for fault diagnosis of rotating machinery(翻译)
- Qt实现天气信息显示和温度曲线绘制
- 对只含英文字母的字符串按字母顺序排序,相同的字母大写在前,小写在后
- cocos2d-x中怎么添加血量条
- goZero入门使用及注意事项