前端上传图片并回显

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

一、上传

先将按钮画出来,input 使用 display: none 隐藏,通过点击按钮触发 input

<div class="button" @click="clickUploader">点击上传</div>
<input type="file" style="display: none" ref="uploader" accept="image/*" capture="camera" @change="fileChange" />

注意:capture="camera" 表示只能使用拍照,在移动端可以使用。

二、回显

回显有两种方法,一种是上传到服务器,再将从服务器返回的文件流或图片地址展示出来;另一种是将图片转成 base64 ,再将 base64 展示出来。

base64 回显

clickUploader() {
    this.$refs.uploader.click();
},
fileChange(e) {
    const file = e.target.files[0];
    const reader = new FileReader();
    reader.onload = function () {
        const base64 = reader.result;
        sessionStorage.setItem('picture', base64)
    };
    reader.readAsDataURL(file);
    e.target.value = null; // 清除 input 中的值
},
<template>
    <img :src="picture" alt="">
</template>

<script>
export default {
    computed: {
        picture() {
            return sessionStorage.getItem('picture')
        }
    },
}
</script>

上传至服务器回显

考虑到上传文件是会多次使用的,所以把核心部分抽离出来,单独写到一个文件中。以下代码是用 TypeScript 写的,如使用 JavaScript 开发,去除类型断言即可。

utils/file.ts

import { upload } from "@/api/file.js";

/**
 * @description 文件上传
 * @param file 文件
 * @returns 接口返回数据
 */
export function fileUpload(file: string | Blob) {
  const params = new FormData()
  params.append('file', file)
  return new Promise((resolve, reject) => {
    upload(params)
      .then((res: any) => {
        resolve(res)
      })
      .catch((err: any) => {
        reject(err)
      })
  })
}

上传页面

<template>
    <div class="button" @click="clickUploader">点击上传</div>
    <input type="file" style="display: none" ref="uploader" accept="image/*" capture="camera" @change="fileChange" />
</template>

<script>
import { fileUpload } from '@/utils/file'

const clickUploader = () => {
    this.$refs.uploader.click();
},
const fileChanger = (e) => {
    this.fileUpload(e.target.files[0]).then((res) => {
        sessionStorage.setItem('picture', res.data.url)
    });
    e.target.value = null; // 清除 input 中的值
},
</script>

展示页面

<template>
    <img :src="picture" alt="">
</template>

<script>
export default {
    computed: {
        picture() {
            return sessionStorage.getItem('picture')
        }
    },
}
</script>

END文章来源地址https://www.toymoban.com/news/detail-697454.html

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

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

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

相关文章

  • 用element-ui中的up-load组件实现简单的图片上传到本地然后回显(从前端到后端)

    一:前端样式以及效果:  前端样式代码如下: 二:后端Controller层  这里的处理逻辑是将前端传递进来的图片交给FileUtil处理,接下来看FileUtil的代码: 首先获取传递进来图片的文件名后缀 然后用UUID将其拼接得到一个新的名字 将图片存入到本地的文件夹下面 接下来返回路

    2024年02月03日
    浏览(50)
  • uniapp、uview——图片上传(单图上传、多图上传、多组照片上传、图片回显)

    uView组件的上传功能,单图上传、多图上传等。 官方文档地址: https://www.uviewui.com/components/upload.html (一)单图上传 1.效果演示: 只能上传一张,选完之后,上传的按钮消失,当然,如果图片不合适,删掉再换一张,但就是只能上传一张。 2.代码: (二)多图上传 1.效果演

    2024年02月07日
    浏览(40)
  • [前端开发] 常见的 HTML CSS JavaScript 事件

    代码示例指路 常见的 HTML、CSS、JavaScript 事件代码示例 在 Web 开发中,事件是用户与网页交互的重要方式之一。通过事件,用户可以与页面元素进行交互,触发相应的功能或效果。本文将介绍常见的 HTML、CSS、JavaScript 事件,以及事件对象和事件代理的概念。 鼠标事件 鼠标事

    2024年02月19日
    浏览(56)
  • element ui 多张图片上传、回显、删除

    前端文件上传 1、展示部分 2、方法部分 3.函数部分 表单提交时的操作 这个写的有点长,大家挑选自己用的到的部分复制修改一下就行 后端文件上传 1.controoler部分

    2024年02月09日
    浏览(41)
  • element upload 图片上传 回显 及删除

    目标需求 图片上传 图片回显 可以删除图片 效果图 实现 模板 js 难点 理解 upload 中的 fileList 这个参数,需要将这个参数存起来回显,以及删除的时候找到对应删除的图片下标

    2024年02月15日
    浏览(43)
  • Android 使用Retrofit+协程实现超简单大文件下载并回显进度条

    安卓自带的进度条弹窗过时了,这里简单创建一个进度条弹窗 在 drawable 文件夹创建 progress_dialog_bg_style.xml 一个圆角白色背景样式 创建 alert_dialog_download_progress.xml 布局 创建弹窗工具类,使用刚才创建好的布局 简单封装一个下载工具类 先定义一个下载参数实体 DownloadDTO 编写下

    2024年02月12日
    浏览(54)
  • Vue中实现图片上传,上传后的图片回显,存储图片到服务器 【使用对象存储OSS】

    前言 以下只提供一种思路,对新手可能不太友好。 这里将前端Vue上传的图片直接存储到服务器上, Alibaba Cloud OSS : 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储

    2024年02月06日
    浏览(74)
  • [HTML]Web前端开发技术26(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页

    希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要! 目录 前言 数据类型 数据类型-字符型 数据类型-数值型 数据类型-布尔型 数据类型-其它类型 变量 转义字符 运算

    2024年02月20日
    浏览(70)
  • 解决微信小程序上传图片不能回显的问题

    首先要保证后台采用根据系统自动识别的方法返回地址分隔符 (File.separator) 按上述所说,后台根据系统自动识别,那么Linux系统将不会出现问题,返回的类型皆是 (/pic/123) 正确的。 而windows返回的则是 单个 此时到小程序前台则会被认为是转义符 所以导致地址拼接错误

    2024年02月09日
    浏览(58)
  • 【SpringBoot】简单的文件上传和文件下载以及图片回显

    介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力? 我见过最好的答案就是:因为我喜欢的东西都很贵,

    2024年01月15日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包