头像上传主要的难点在于后端的操作。接下来我会从最开始一步步实现。

我用的是vant组件 其实感觉移动端的话vant组件还是非常好用的Vant 2 - Mobile UI Components built on Vue

这里使用的是Vant 2的Uploader 文件上传

首先在页面中使用该组件

<template><div><van-uploader :after-read="afterRead" /></div>
</template><script>
export default {methods: {afterRead(file) {// 此时可以自行将文件上传至服务器console.log(file);},},
};
</script><style lang="scss" scoped></style>

 当我们随便上传一张图片之后就会出来一个file对象

这样就能获取到图片的一些信息 比如:图片大小 图片格式 ........

回到页面开始写发送请求 这里注意要写一个name字段

<template><div><van-uploader name='uploadFile' :after-read="afterRead" /></div>
</template><script>
export default {methods: {afterRead(file) {// 此时可以自行将文件上传至服务器console.log(file);// 创建一个新的FromDataconst fd = new FormData()// 这一步是把刚才获取到的图片信息 添加到fd里面fd.append('uploadFile',file.file)// 这时候就可以向后台发请求了// 注意要用post// 这里用到了axios来发请求 没有的话要下载 npm install axios// 可以在根目录下 package.json中查看this.axios.post('http://localhost:3000/upload',fd).then(res=>{console.log(res);})},},
};
</script><style lang="scss" scoped></style>

注意发送请求的路径,这个路径是直接向后台服务器发送的请求。到了这个时候前台代码基本完成了

开始后端代码 

​​​​​​// 配置multer中间件
const multer = require('multer');
obj = multer.diskStorage({//设置上传后文件路径,upload文件夹会自动创建destination: function (req, file, cb) {//指定目录//cb ---> callbackcb(null, 'upload');}, //给上传文件重命名filename: function (req, file, cb) {// 指定文件名let name = file.originalname;// name:  abcd.jpg    xxxdfdd.ziplet ext = name.substr(name.lastIndexOf('.'));cb(null, uuid.v4() + ext);},
});
const uploadTools = multer({storage: obj,
});
const uuid = require('uuid');
// 静态资源托管目录
poetry.use(express.static('upload'));

注意这里使用的一些中间件什么都需要下载

直接 npm install multer   npm install uuid 下载完了在你的packge.json中查看

让后重要的一步来了,我们要提前在我们的后端中增加一个文件夹用来保存上传的图片也就是你的静态资源托管目录upload

到了这一步就开始写接口

​​poetry.post('/upload',uploadTools.array('uploadFile'),(req,res)=>{console.log(req.files);// 这里创建一个空数组let urls = []// 循环拿到的路径req.files.forEach(item=>{console.log(item.filename);urls.push('http://localhost:3000/'+item.filename)})// 把路径返回res.send(urls)}),
// 指定服务器对象监听的端口号
poetry.listen(3000, () => {console.log('is run....');
});

回到前台,这样就拿到的后台返回给你的图片路径 之后就可以渲染到页面上了

​​<template><div><van-uploader name='uploadFile' :after-read="afterRead" /><img :src="`${this.img}`" style="width:100vw"></div>
</template><script>
export default {data() {return {img: ''}},methods: {afterRead(file) {// 此时可以自行将文件上传至服务器console.log(file);// 创建一个新的FromDataconst fd = new FormData()// 这一步是把刚才获取到的图片信息 添加到fd里面fd.append('uploadFile',file.file)// 这时候就可以向后台发请求了// 注意要用post// 这里用到了axios来发请求 没有的话要下载 npm install axios// 可以在根目录下 package.json中查看this.axios.post('http://localhost:3000/upload',fd).then(res=>{console.log(res);this.img = res.data[0]})},},
};
</script><style lang="scss" scoped></style>

这样图片上传就完成了。

vue 移动端上传头像相关推荐

  1. vue 移动端头像裁剪_移动端 上传头像 并裁剪功能(h5)

    移动端头像图片上传裁剪 .button { outline: 0; display: inline-block; margin-bottom: 0; font-weight: 400; text-al ...

  2. photoclip 图片旋转_PhotoClip移动端、pc端上传头像裁剪

    photoClip是一款支持移动设备触摸手势的图片裁剪jQuery插件. 一般引入 html部分 + 使用 'options' => ["enctype" => &qu ...

  3. 移动端上传头像-相册、拍摄-旋转

    <!--头像浮层开始--> <div id="upPic"> <div id="upPicCont"> <img id ...

  4. app头像上传vue_vue移动端上传头像

    屏幕快照 2018-09-09 08.09.26.png 头像 style .set-head { position: relative; top: .7em; } .set-head-icon { ...

  5. html5头像裁剪,移动端 上传头像 并裁剪功能(h5)

    移动端头像图片上传裁剪 }.button-info{color:#fff;background-color:#2db7f5;border-color:#2db7f5; }.avatarbox{widt ...

  6. vue 使用vant 上传头像并剪切上传

    https://blog.csdn.net/Jackson991/article/details/107344345/?utm_medium=distribute.pc_relevant.none-t ...

  7. vue2移动端上传,预览,压缩图片,解决拍照旋转问题

    https://github.com/exif-js/exif-js http://code.ciaoca.com/javascript/exif-js/demo/ 因为最近遇到个移动端上传头像的需求 ...

  8. 手机端-上传头像并裁剪

    <headrunat="server"><metahttp-equiv="Content-Type"content="text/ht ...

  9. 前后端分离学习笔记(5) ---[表单的增删改操作;以及为管理员上传头像]

    上一篇案例中也是查询到了表单的内容–>前后端分离学习笔记(4) -[路由嵌套, 查询表单显示] 文章目录 1.前端组件页面 添加管理员操作 修改管理员信息 删除管理员 为管理员上传头像 修改密码 ...

最新文章

  1. 【Machine Learning实验5】SVM实验
  2. Centos7 Minimal 安装后 初始化配置
  3. Scrapy 下载器 中间件(Downloader Middleware)
  4. 玩转linux文件描述符和重定向,玩转Linux文件描述符和重定向
  5. java四种修饰符_java中的四种修饰符
  6. CentOS中获取文件的前四个字节的16进制值
  7. UC浏览器 通用java 游戏狗_游戏狗app下载-游戏狗 安卓版v4.5.0-PC6安卓网
  8. colorsys模块(RGB/HSV/HSL/YIQ)颜色模型简介
  9. [解题报告]Ural 1011 Conductors
  10. spacy中en_core_web_sm安装问题
  11. 手机屏幕常见故障_手机屏幕失灵怎么回事 手机屏幕失灵解决办法
  12. 微信小程序开发笔记6——小程序添加并使用外部字体(亲测可用)
  13. ros 单向通讯 talker,listener 发布订阅模型
  14. 产品经理——关于版式设计!!
  15. 参加“互联网+“比赛心得与体会
  16. 中央空调如何调节温度html,麦克维尔中央空调设置温度单位方法
  17. “读芯术”精华文章汇总:前程规划
  18. matlab画简单长方形,matlab在图像中画长方形(框)
  19. cad导出pdf_如何使用浩辰CAD看图王软件来快速导出PDF功能?
  20. 全站 HTTPS 来了

热门文章

  1. 2011-12-22
  2. CSRF攻击:陌生链接不要随便点
  3. 震惊,java仅用30行代码就实现了视频转音频的批量转换
  4. 深度学习(GoogLeNet)
  5. 尴尬滑倒!库里打圆场:克莱的扣篮引发地震
  6. firefox越到flash player就会卡死
  7. 为什么我的Windows 10 便签不支持更改字体?
  8. 百度地图 php,php+js实现百度地图多点标注的方法
  9. 智能视频工具,更加智能
  10. win10 mysql初始化失败_win10电脑中windows通信端口初始化失败的解决教程