当前位置: 首页 > news >正文

内部网站开发构建中小企业网络

内部网站开发,构建中小企业网络,网站建设好处zu97,网页设计图片自动切换大型纪录片#xff1a;学习若依源码#xff08;前后端分离版#xff09;之 “ 上传图片功能实现” 前言前端部分后端部分结语 前言 图片上传也基本是一个项目的必备功能了#xff0c;所以今天和大家分享一下我最近在使用若依前后端分离版本时#xff0c;如何实现图片上传… 大型纪录片学习若依源码前后端分离版之 “ 上传图片功能实现” 前言前端部分后端部分结语 前言 图片上传也基本是一个项目的必备功能了所以今天和大家分享一下我最近在使用若依前后端分离版本时如何实现图片上传功能的经验和心得。 前端部分 在前端部分我主要使用了两个组件来实现图片上传功能分别是el-upload组件和vue-cropper组件。想要简单实现图片上传用el-upload就足够了。这里就以ul-upload为例要是想要看vue-cropper的可以评论区留言。 页面相关代码 el-form-item label头像路径imageUpload v-modelform.avatar//el-form-itemimageUpload为自定义组件具体代码如下 div classcomponent-upload-imageel-upload:actionuploadImgUrllist-typepicture-card:on-successhandleUploadSuccess:before-uploadhandleBeforeUpload:limitlimit:on-errorhandleUploadError:on-exceedhandleExceednamefile:on-removehandleRemove:show-file-listtrue:headersheaders:file-listfileList:on-previewhandlePictureCardPreview:class{hide: this.fileList.length this.limit}i classel-icon-plus/i/el-upload!-- 上传提示 --div classel-upload__tip slottip v-ifshowTip请上传template v-iffileSize 大小不超过 b stylecolor: #f56c6c{{ fileSize }}MB/b/templatetemplate v-iffileType 格式为 b stylecolor: #f56c6c{{ fileType.join(/) }}/b/template的文件/divel-dialog:visible.syncdialogVisibletitle预览width800append-to-bodyimg:srcdialogImageUrlstyledisplay: block; max-width: 100%; margin: 0 auto//el-dialog/divel-upload组件是一个非常强大和灵活的上传组件它提供了很多属性和事件来控制上传过程。以下是使用el-upload组件时用到的一些属性和事件 action这个属性用来指定上传地址即后端接收文件的接口地址。 headers这个属性用来指定请求头例如携带token等信息。limit这个属性用来指定文件数量限制例如只能上传一张图片。如果用户选择或上传的文件超过了这个限制那么会触发on-exceed事件该事件可以用来显示一个错误提示信息。file-list这个属性用来指定文件列表即已经上传或者待上传的文件信息。on-success这个事件用来指定上传成功回调函数例如显示成功提示信息。on-error这个事件用来指定上传失败回调函数例如显示失败提示信息。http-request这个事件用来指定自定义上传请求函数例如使用axios等工具来发送post请求并携带相关的参数和请求头。 相关方法 props: {value: [String, Object, Array],// 图片数量限制limit: {type: Number,default: 5,},// 大小限制(MB)fileSize: {type: Number,default: 5,},// 文件类型, 例如[png, jpg, jpeg]fileType: {type: Array,default: () [png, jpg, jpeg],},// 是否显示提示isShowTip: {type: Boolean,default: true}},data() {return {dialogImageUrl: ,dialogVisible: false,hideUpload: false,baseUrl: process.env.VUE_APP_BASE_API,uploadImgUrl: process.env.VUE_APP_BASE_API /common/upload, // 上传的图片服务器地址headers: {Authorization: Bearer getToken(),},fileList: []};},// 删除图片handleRemove(file, fileList) {const findex this.fileList.map(f f.name).indexOf(file.name);if (findex -1) {this.fileList.splice(findex, 1);this.$emit(input, this.listToString(this.fileList));}},// 上传成功回调handleUploadSuccess(res) {this.fileList.push({name: res.fileName, url: res.fileName});this.$emit(input, this.listToString(this.fileList));this.loading.close();},// 上传前loading加载handleBeforeUpload(file) {let isImg false;if (this.fileType.length) {let fileExtension ;if (file.name.lastIndexOf(.) -1) {fileExtension file.name.slice(file.name.lastIndexOf(.) 1);}isImg this.fileType.some(type {if (file.type.indexOf(type) -1) return true;if (fileExtension fileExtension.indexOf(type) -1) return true;return false;});} else {isImg file.type.indexOf(image) -1;}if (!isImg) {this.$message.error(文件格式不正确, 请上传${this.fileType.join(/)}图片格式文件!);return false;}if (this.fileSize) {const isLt file.size / 1024 / 1024 this.fileSize;if (!isLt) {this.$message.error(上传头像图片大小不能超过 ${this.fileSize} MB!);return false;}}this.loading this.$loading({lock: true,text: 上传中,background: rgba(0, 0, 0, 0.7),});},// 文件个数超出handleExceed() {this.$message.error(上传文件数量不能超过 ${this.limit} 个!);},// 上传失败handleUploadError() {this.$message({type: error,message: 上传失败,});this.loading.close();},// 预览handlePictureCardPreview(file) {this.dialogImageUrl file.url;this.dialogVisible true;},// 对象转成指定字符串分隔listToString(list, separator) {let strs ;separator separator || ,;for (let i in list) {strs list[i].url.replace(this.baseUrl, ) separator;}return strs ! ? strs.substr(0, strs.length - 1) : ;}}这都是作者封装好的需要使用的话直接调用改组件就好了。 效果如下 后端部分 PostMapping(/common/upload)在选择图片后默认会调用这个通用的上传方法然后它就会返回文件名和在文件所在的路径返回文件名是因为在修改的时候替换掉原来的文件名。亦或者是新增的时候返回文件名。返回路径比较好理解就相当于一个回显了嘛。 /*** 通用上传请求*/PostMapping(/common/upload)public AjaxResult uploadFile(MultipartFile file) throws Exception {System.out.println(i am coming);try {// 上传文件路径String filePath RuoYiConfig.getUploadPath();// 上传并返回新文件名称String fileName FileUploadUtils.upload(filePath, file);String url serverConfig.getUrl() fileName;AjaxResult ajax AjaxResult.success();ajax.put(fileName, fileName);ajax.put(url, url);System.out.println(filename____ ajax);return ajax;} catch (Exception e) {return AjaxResult.error(e.getMessage());}}结语 后端通过这个方法我们就可以实现图片上传了。是不是很简单呢如果我哪里漏了没讲可以评论私信。 那么以上就是唐某的一些理解。这次的分享就到这里了。记得一键三连~( •̀ ω •́ )✧
http://www.w-s-a.com/news/551633/

相关文章:

  • 肇庆市有限公司网站建设手机直接看的网站有哪些
  • 织梦修改网站后备份英语作文模板高中
  • 个人网站域名用什么好上海公司拍沪牌需要什么条件
  • 网站建设 保密做网站赚钱交税
  • 食品建设网站前的市场分析进出口网站贸易平台有哪些
  • php商城网站建设个人网站用什么服务器
  • 如何做好品牌网站建设方案网站开发的学习
  • 网站开发 管理方案wordpress怎么搭建微博
  • 有哪些ui的设计网站网上商城网站建设设计方案
  • iis中怎样配置网站绑定运城可以做网站的公司
  • 品牌网站建设开发价格dedecms电影网站模板
  • 网站设计外包合同帝国网站后台认证码错误
  • 网站设计公司深圳怎么免费做公司网站
  • 90设计网站几次是什么意思swipe类网站
  • 安康微网站建设网站域名使用费用
  • 网站建设执招标评分表微信代理网站模板
  • ps做网站分辨率自适应地方网站盈利
  • 免费自助小型网站专业网站建设组织
  • 猎聘网网站建设目标查看别人wordpress主题
  • 免费建设网站入驻网站备案不能更新吗
  • 个人网站制作代码西安建筑类公司
  • 网站备案要营业执照吗网站建设如何记账
  • 新手学做网站难吗外包服务商
  • 公司网站建设的项目工作分解结构wordpress插件后端页面
  • 四川省建设人才网站2018南京专业建站
  • ppt制作网站推荐seo教程百度网盘
  • 网站建设多少钱一平米网上商城网站开发报告
  • 福州网站建设招聘信息哈尔滨中企动力科技股份有限公司
  • 军事新闻最新seo关键词查询排名软件
  • 免费网站建设官网项目建设表态发言