如何显示上传到 vue 组件的图像?

Posted

技术标签:

【中文标题】如何显示上传到 vue 组件的图像?【英文标题】:How can I display image by image uploaded on the vue component? 【发布时间】:2017-12-17 16:57:59 【问题描述】:

我的代码是这样的:

<div id="app">
  <div v-for="item in items">
    <div v-if="!image">
      <h2>Select an image</h2>
      <input type="file" @change="onFileChange">
    </div>
    <div v-else>
      <img :src="image" />
      <button @click="removeImage">Remove image</button>
    </div>
  </div>
</div>

演示和完整代码如下:https://codepen.io/moschel26/pen/jwdMgp

有 5 个输入文件。我希望当我在输入文件 3 上上传图像时,图像仅显示在 img 3 上。当我在输入文件 5 上上传图像时,图像仅显示在 img 5 上。等

我该怎么做?

【问题讨论】:

【参考方案1】:

您应该制作对象数组来设置上传的图像。

<div id="app">
  <div v-for="item in items">
    <div v-if="!item.image">
      <h2>Select an image</h2>
      <input type="file" @change="onFileChange(item, $event)">
    </div>
    <div v-else>
      <img :src="item.image" />
      <button @click="removeImage(item)">Remove image</button>
    </div>
  </div>
</div>

此处为完整示例:https://codepen.io/emils/pen/VWgpaJ

【讨论】:

以上是关于如何显示上传到 vue 组件的图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Vue 2中处理文件上传

如何在 Vue 和 Laravel 中使用 axios 上传图像文件和数据对象?

如何在 Vue.js (Element.ui) 中的上传按钮侧面上传后预览/显示图像?

如何将图像位置传递给 Vue 中的子组件?

如何从嵌套组件发出,同时保持引用函数外部变量的能力

Vue js - 在同一个组件中上传多个文件(图像和mp3)[重复]