这次给大家带来express+multer实现node图片上传的具体步奏,express+multer实现node图片上传的注意事项有哪些,下面就是实战案例,一起来看一下。
下文给大家介绍使用express+multer实现node中的图片上传功能,具体内容介绍如下所示:
在前端中,我们使用ajax来异步上传图片,使用file-input来上传图片,使用formdata对象来处理图片数据,post到服务器中
在node中使用multer中间件来对上传路由接口进行处理
multer文档
package.jsonhtml部分
<body> <p class="form-group"> <label>File input:</label> <input type="file" name="file" id="file"> <p id="result"></p> <img id="img" src=""> </p> <button id="upload" class="btn btn-default">提交</button> </body>
js部分
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <script> //上传图片的业务逻辑函数 function uploadFile(){ //上传图片的input var file = document.getElementById("file") //因为准备用post提交,又因为图片的内容比较大,所以我们选择使用formdata来承载数据 //创建formdata对象 var formData = new FormData(); //给formdata对象中放入数据(键值对的方式) formData.append('file',file.files[0]); //提交请求 $.ajax({ url: '/upload',//请求路径 type: 'POST', data: formData, contentType: false,//为了让浏览器根据传入的formdata来判断contentType processData: false,//同上 success: function(data){ if(200 === data.code) { $('#result').html("上传成功!"); $('#img').attr('src',data.data); } else { $('#result').html("上传失败!"); } console.log(2) }, error: function(){ $("#result").html("与服务器通信发生错误"); } }); console.log(1) } //给按钮添加点击事件 function postPage() { //上传按钮 var uploada = document.getElementById('upload'); uploada.addEventListener("click",function () { uploadFile(); },false); } window.onload = function () { postPage(); } </script>
NodeJS逻辑代码
const http = require('http') const path = require('path') const express = require('express') //是nodejs中处理multipart/form-data数据格式(主要用在上传功能中)的中间件 //文档:https://github.com/expressjs/multer/blob/master/doc/README-zh-cn.md const multer = require('multer') const app = express() //配置express的静态目录 app.use(express.static(path.join(dirname, 'public'))); app.get('/',(req,res)=>{ res.sendFile(dirname+'/index.html') }) //配置diskStorage来控制文件存储的位置以及文件名字等 var storage = multer.diskStorage({ //确定图片存储的位置 destination: function (req, file, cb){ cb(null, './public/uploadImgs') },  //确定图片存储时的名字,注意,如果使用原名,可能会造成再次上传同一张图片的时候的冲突 filename: function (req, file, cb){ cb(null, Date.now()+file.originalname) } }); //生成的专门处理上传的一个工具,可以传入storage、limits等配置 var upload = multer({storage: storage}); //接收上传图片请求的接口 app.post('/upload', upload.single('file'), function (req, res, next) { //图片已经被放入到服务器里,且req也已经被upload中间件给处理好了(加上了file等信息) //线上的也就是服务器中的图片的绝对地址 var url = '/uploadImgs/' + req.file.filename res.json({ code : 200, data : url }) }); http.createServer(app).listen(3000,()=>{ console.log('server is listening') })
自我感觉良好,不知道博客园为什么要给我移除首页....
再发一次,if(delete){ alert('Never publish anything again.') }else{ alert(1) }
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Atas ialah kandungan terperinci express+multer实现node图片上传的具体步奏. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

node、nvm与npm的区别:1、nodejs是项目开发时所需要的代码库,nvm是nodejs版本管理工具,npm是nodejs包管理工具;2、nodejs能够使得javascript能够脱离浏览器运行,nvm能够管理nodejs和npm的版本,npm能够管理nodejs的第三方插件。

Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!

node怎么爬取数据?下面本篇文章给大家分享一个node爬虫实例,聊聊利用node抓取小说章节的方法,希望对大家有所帮助!

node导出模块的两种方式:1、利用exports,该方法可以通过添加属性的方式导出,并且可以导出多个成员;2、利用“module.exports”,该方法可以直接通过为“module.exports”赋值的方式导出模块,只能导出单个成员。

安装node时会自动安装npm;npm是nodejs平台默认的包管理工具,新版本的nodejs已经集成了npm,所以npm会随同nodejs一起安装,安装完成后可以利用“npm -v”命令查看是否安装成功。

node中没有包含dom和bom;bom是指浏览器对象模型,bom是指文档对象模型,而node中采用ecmascript进行编码,并且没有浏览器也没有文档,是JavaScript运行在后端的环境平台,因此node中没有包含dom和bom。

本篇文章带大家聊聊Node.js中的path模块,介绍一下path的常见使用场景、执行机制,以及常用工具函数,希望对大家有所帮助!


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Dreamweaver CS6
Alat pembangunan web visual

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini
