el-upload使用http-request实现图片上传,回显,放大效果

这篇具有很好参考价值的文章主要介绍了el-upload使用http-request实现图片上传,回显,放大效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        在项目开发中,为了实现上传文件的功能,我们需要用到el-upload这个组件,为了实现回显放大效果,就要用到el-image这个组件了。官方文档中介绍了上传的两种方法,一个是使用action,其参数必须要上传的地址;另一个是http-request,该方法覆盖默认的上传行为,可以自定义上传的实现。下面阐述如何实现图片上传,回显,放大效果。

官方文档:Element - The world's most popular Vue UI framework

el-upload组件相关api介绍:

el-upload http-request,vue.js,前端框架,前端,javascript,elementui

el-upload http-request,vue.js,前端框架,前端,javascript,elementui

上传图片有以下这些几种方式,开发者可以根据项目实际情况进行选择。

  • 传入自定义的上传按钮类型和文字提示

el-upload http-request,vue.js,前端框架,前端,javascript,elementui

<el-upload
  class="upload-demo"
  action="https://jsonplaceholder.typicode.com/posts/"
  :on-preview="handlePreview"
  :on-remove="handleRemove"
  :before-remove="beforeRemove"
  multiple
  :limit="3"
  :on-exceed="handleExceed"
  :file-list="fileList">
  <el-button size="small" type="primary">点击上传</el-button>
  <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
<script>
  export default {
    data() {
      return {
        fileList: [{name: 'food.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}, {name: 'food2.jpeg', url: 'https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100'}]
      };
    },
    methods: {
      handleRemove(file, fileList) {
        console.log(file, fileList);
      },
      handlePreview(file) {
        console.log(file);
      },
      handleExceed(files, fileList) {
        this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
      },
      beforeRemove(file, fileList) {
        return this.$confirm(`确定移除 ${ file.name }?`);
      }
    }
  }
</script>
  • 照片墙,可以回显图片

el-upload http-request,vue.js,前端框架,前端,javascript,elementui

代码如下:

<el-upload
  action="https://jsonplaceholder.typicode.com/posts/"
  list-type="picture-card"
  :on-preview="handlePictureCardPreview"
  :on-remove="handleRemove">
  <i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
  <img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
<script>
  export default {
    data() {
      return {
        dialogImageUrl: '',
        dialogVisible: false
      };
    },
    methods: {
      handleRemove(file, fileList) {
        console.log(file, fileList);
      },
      handlePictureCardPreview(file) {
        this.dialogImageUrl = file.url;
        this.dialogVisible = true;
      }
    }
  }
</script>
  • 可以对图片进行拖拽

el-upload http-request,vue.js,前端框架,前端,javascript,elementui

代码如下:

<el-upload
  class="upload-demo"
  drag
  action="https://jsonplaceholder.typicode.com/posts/"
  multiple>
  <i class="el-icon-upload"></i>
  <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>

 通过以上介绍我们已经初步了解了el-upload的用法,下面我们来看图片上传回显放大的实现过程。代码如下:

<el-upload
      ref="upload"
      class="upload-demo"
      action="#"
      :on-remove="remove"
      list-type="picture"
      :http-request="handler"
      :limit="limit"
      :accept="'.png,.jpg,.jpeg'"
      :on-exceed="onExceed"
      :before-upload="beforeAvatarUpload"
      :file-list="fileList"
    >
      <el-button size="small" type="primary" icon="el-icon-upload"
        >上传图片</el-button
      >
      <div slot="file" slot-scope="{ file }">
        <div style="display: flex; align-items: center">
          <el-image
            style="width: 78px; height: 78px"
            :src="file.url"
            :preview-src-list="[file.url]"
          ></el-image>
          <div style="font-size: 15px; font-weight: bold; margin-left: 32px">
            <el-tooltip :content="file.name" :disabled="isShow" placement="top">
              <div @mouseover="inputOnMouseOver(file.name)">
                {{
                  file.name.length > 10
                    ? file.name.slice(0, 10) + "..."
                    : file.name
                }}
              </div></el-tooltip
            >
          </div>
          <div style="margin-left: 32px">
            <i
              class="el-icon-close"
              @click="remove"
              style="display: inline-block; font-size: 18px"
            ></i>
          </div>
        </div>
      </div>
    </el-upload>
methods: {
      //fileList存放上传的图片 file是对象
      handler(file) {
        this.fileList = [file];
      },
      // 校验上传的文件数量是否超出限制
      onExceed() {
        this.$message.error(`只能上传${this.limit}张图片!`);
      },
      // 移除图片时清空
      remove(file) {
        this.$refs.upload.clearFiles();
      },
      // 上传前校验图片格式
      beforeAvatarUpload(file) {
        const isType = ["image/jpg", "image/png", "image/jpeg"].includes(
          file.type
        );
        if (!isType) {
          this.$message({
            message: "只能上传格式为PNG,JPG,JPEG的图片!",
            type: "warning",
          });
        }
        return isType;
      },
      // 图片名字过长处理
      inputOnMouseOver(name) {
        if (name.length < 10) {
          this.isShow = true;
        } else {
          this.isShow = false;
        }
      },
    },

效果如下,点击图片可以实现放大效果:

el-upload http-request,vue.js,前端框架,前端,javascript,elementui

el-upload http-request,vue.js,前端框架,前端,javascript,elementui文章来源地址https://www.toymoban.com/news/detail-712889.html

到了这里,关于el-upload使用http-request实现图片上传,回显,放大效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue+element Upload利用http-request实现第三方地址图片上传

    Vue + element (el-upload)中的 :http-request 图片上传 java后端上传接口,利用 OSS 存储图片 postman测试 图片上传功能及方法 对比: 服务端签名后直传 使用element UI 的el-upload实现第三方地址图片上传,替换原来的action方法 直接上传方法如下:上传图片根据action地址请求后获取到图片u

    2023年04月26日
    浏览(42)
  • 使用el-upload组件实现递归多文件上传

    一、需求描述:在页面上点击按钮弹出选择电脑文件的界面,可以一次性选择多个文件一起上传到服务器上,并把上传成功的文件展示在页面上。 · 二、 问题阐述:el-upload是支持多文件上传的,但是是同步进行的,你点击上传按钮,选择了多个文件后点击确定,会同时调用

    2023年04月08日
    浏览(40)
  • vue2,使用element中的Upload 上传文件,自定义上传http-request上传,上传附件支持多选,多个文件只发送一次请求,代码里有注释

    复制直接使用,组件根据multiple是否多选来返回附件内容,支持多选就返回数据附件,则返回一个附件对象。

    2024年02月10日
    浏览(57)
  • 【前端相关】elementui使用el-upload组件实现自定义上传

    elmentui 中的upload默认的提交行为是通过 action 属性中输入的 url 链接,提交到指定的服务器上。但是这种url提交文件的方式,在实际的项目环境中往往是不可取的。 我们的服务器会拦截所有的请求,进行权限控制,密钥检查,请求头分析等安全行为控制。写在这里的url无法实

    2024年02月08日
    浏览(60)
  • el-upload实现上传文件夹

    背景:如图一所示,最下面有一个黄色上传文件按钮,为手动上传而且上传区域有上传文件和上传文件夹的区分 所以需要在点击了上传文件夹做特殊处理使得el-upload可以上传文件夹 01.在拖拽上传的区域绑定一个点击事件 handlePreview ,(注意不要直接绑定在el-upload区域,会被触

    2024年02月07日
    浏览(58)
  • el-upload 文件上传组件的使用

    element-ui官网 element ui=upload上传组件 Upload 上传文件这个功能是我们在企业实际开发当中使用频率是非常高的这样一个文件上传的功能,,element ui组件组也给我们提供了上传的组件。所有我们一定要熟悉掌握它 使用之前先进行一下element ui的安装和配置 打开终端=输入npm i elem

    2024年02月11日
    浏览(75)
  • vue el-upload实现图片和文字上传

    一、需求: 在表单中使用图片上传,每一张上传的图片都可以加上文字说明通过表单一起传到后台,最后再其他需要的地方展示出来。  二、实现: 后端表单提交时,图片需要的格式是:imageList[ { fileUrl:\\\' \\\', imageExplain:\\\' \\\' } ] 界面代码 v-model=\\\"form.imageUrl\\\" :action=\\\"fileUrl\\\" 调用接

    2024年02月10日
    浏览(53)
  • el-upload实现上传文件并展示进度条

    el-upload在实现文件上传时无法触发on-progress钩子,即使调用后端接口并成功的情况下都无法触发,可以通过如下配置来解决: 随后将config添加至调用后端接口,即可成功获取进度~ html: JS部分

    2024年02月04日
    浏览(37)
  • element ui ---- el-upload实现手动上传多个文件

    ui部分 js 实现上传

    2024年02月15日
    浏览(55)
  • vue 使用 el-upload 上传文件(自动上传/手动上传)

    vue 使用 el-upload 上传文件(自动上传/手动上传) 上传 上传

    2024年02月13日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包