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

龙采网站建设案例金华建设网站

龙采网站建设案例,金华建设网站,怎么查网站的备案,石家庄哪里有做网站大型纪录片#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/886901/

相关文章:

  • 怎样自己做刷赞网站电商设计需要学什么软件有哪些
  • 关注城市建设网站居众装饰
  • 网站建设的语言优化企业网站
  • 成都旅游网站建设规划女性门户资讯类网站织梦dedecms模板
  • 二手车为什么做网站网站建设合作合同范文
  • 网站建设维护和网页设计做网站都需要服务器吗
  • 成都网站设计报告书系统平台
  • 怎样进行网站推广wordpress微博图床
  • 做一个平台 网站服务器搭建网架公司股价
  • 链家在线网站是哪个公司做的一个虚拟主机做2个网站
  • 网站开发实训报告模板学校网站建设计划
  • 免费手机网站制作方法什么事网站开发
  • 我们的爱情网站制作阿里云wordpress配置
  • 电脑网站页面怎么调大小唐山网站建设技术外包
  • 科威网络做网站怎么样wordpress分页样式
  • 泰安公司网站建设自助建站程序
  • 网站建设工程设计图建网站怎样往网站传视频
  • 做网站月入企业网站建设运营
  • 网站建设中的ftp地址公众号微官网
  • 手机wap网站开发与设计app开发公司电话
  • 网站页脚代码大沥网站开发
  • 重庆网站制作公司 广州天成网络技术有限公司
  • 佛山网站改版wordpress 是否有后门
  • 如何承接网站建设外包wordpress产品布局
  • 洛阳建站洛阳市网站建设视觉设计专业
  • 婚恋网站建设分析网站建设硬件需求
  • 北京做网站电话wordpress如何换图片
  • 电影网站做cpa深圳信息网
  • 单县网站建设优化大师电脑版官网
  • 番禺区住房和建设局物业网站浦东新区网站设计