基于VUE选择上传图片并页面显示(图片可删除)

发布时间 - 2026-01-11 01:18:54    点击率:

基于VUE选择上传图片并在页面显示,图片可删除,具体内容如下

demo例子:

依赖文件:jqueryform

HTML文本内容:

<template>
 <div id="accident">
 <div class="wrapper">
 <i class="icon-pic"></i>相关照片
 <button type="button" @click="change_input()">上传照片</button>
 <form id="addTextForm" @change="setImg($event)">
 </form>
 </div>
 <div id="img-wrapper" @click="deleteImg($event)"></div>
 <P class="btn-wrapper">
 <mt-button type="primary" @click="submit()">提交</mt-button>
 </P>
 </div>
</template>

JS文本内容:

<script>
 /** 
 * 从 file 域获取 本地图片 url 
 */ 
 function getFileUrl(obj) { 
 let url; 
 url = window.URL.createObjectURL(obj.files.item(0)); 
 return url; 
 }

export default {
 name: 'accident',
 // 定义数据
 data () {
 return {
 imgNum:4, //上传的照片数量,可根据实际情况自定义 
 }
 },//定义事件
 methods:{
 //根据点击上传按钮触发input
 change_input(){
 let inputArr=$('#addTextForm input');
 let add_inputId=''; //需要被触发的input
 for(let i=0;i<inputArr.length;i++){
 // 根据input的value值判断是否已经选择文件
 if(!inputArr[i].value){ //如果没有选择,获得这个input的ID 
 add_inputId=inputArr[i].id;
 break;
 }
 }
 if(add_inputId){ //如果需要被触发的input ID存在,将对应的input触发
 return $("#"+add_inputId).click();
 }else{
 alert("最多选择"+this.imgNum+"张图片")
 }
 },
 //当input选择了图片的时候触发,将获得的src赋值到相对应的img
 setImg(e){
 let target=e.target;
 $('#img_'+target.id).attr('src',getFileUrl(e.srcElement));
 },
 //点击图片删除该图片并清除相对的input
 deleteImg(e){
 let target=e.target;
 let inputID=''; //需要清除value的input
 if(target.nodeName=='IMG'){
 target.src='';
 inputID=target.id.replace('img_',''); //获得需要清除value的input
 $('input#'+inputID).val("");
 }
 },
 //提交信息到后台
 submit(){
 $("#addTextForm").ajaxSubmit({
 url: this.$root.api+"/Index/staff_accident/add", 
 type: "post",
 data: {
 'total_price':this.price,
 'descript':this.descript,
 },
 success: (data) => {
 if(data.code==0){
 console.log(‘提交成功');
 }else{
 alert('提交失败');
 }
 }
 }); 
 }
 },
 //页面加载后执行
 mounted(){
 for(let i=0;i<this.imgNum;i++){
 //生成input框,默认为1
 let my_input = $('<input type="file" name="image" />'); //创建一个input
 my_input.attr('id',i); //为创建的input添加id
 $('#addTextForm').append(my_input); //将生成的input追加到指定的form
 //生成img,默认为1
 let my_img = $('<img src="">');
 my_img.attr('id', 'img_'+i);
 my_img.css({"max-width":"50%","max-height":"200px"}); 

 //添加样式,由于vue的执行机制,页面加载的时候img标签还没有生成,直接写在style样式会不生效
 $('#img-wrapper').append(my_img); 
 }
 },
}
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue选择上传图片显示  # vue图片页面显示  # vue上传图片  # JS移动端/H5同时选择多张图片上传并使用canvas压缩图片  # PHP实现微信JS-SDK接口选择相册及拍照并上传的方法  # js实现上传文件添加和删除文件选择框  # file控件选择上传文件确定后触发的js事件是哪个  # 浏览器图片选择预览、旋转、批量上传的JS代码实现  # select下拉选择框美化实现代码(js+css+图片)  # js实现下拉框选择要显示图片的方法  # JS实现的input选择图片本地预览功能示例  # JS实现的radio图片选择按钮效果  # vue+js实现微信上传图片选择功能  # 默认为  # 加载  # 上传  # 还没有  # 最多  # 并在  # 如果没有  # 自定义  # 实际情况  # 写在  # 创建一个  # 上传图片  # 具体内容  # 相对应  # 大家多多  # 判断是否  # 选择了  # 上传照片  # 可根据  # deleteImg 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高端建站如何打造兼具美学与转化的品牌官网?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  如何在云主机上快速搭建多站点网站?  用v-html解决Vue.js渲染中html标签不被解析的问题  Laravel怎么在Blade中安全地输出原始HTML内容  微信小程序 五星评分(包括半颗星评分)实例代码  Windows Hello人脸识别突然无法使用  Laravel如何与Inertia.js和Vue/React构建现代单页应用  Laravel如何创建自定义Facades?(详细步骤)  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  Python并发异常传播_错误处理解析【教程】  如何在IIS服务器上快速部署高效网站?  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  网站建设要注意的标准 促进网站用户好感度!  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何在IIS管理器中快速创建并配置网站?  Laravel如何处理和验证JSON类型的数据库字段  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  如何基于PHP生成高效IDC网络公司建站源码?  Linux系统命令中tree命令详解  如何获取免费开源的自助建站系统源码?  Laravel如何处理异常和错误?(Handler示例)  Laravel如何实现用户注册和登录?(Auth脚手架指南)  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  Laravel如何配置和使用缓存?(Redis代码示例)  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  java ZXing生成二维码及条码实例分享  php结合redis实现高并发下的抢购、秒杀功能的实例  Laravel如何实现API版本控制_Laravel版本化API设计方案  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  魔方云NAT建站如何实现端口转发?  图册素材网站设计制作软件,图册的导出方式有几种?  制作旅游网站html,怎样注册旅游网站?  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  香港服务器租用每月最低只需15元?  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  android nfc常用标签读取总结  微信小程序 HTTPS报错整理常见问题及解决方案  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  魔毅自助建站系统:模板定制与SEO优化一键生成指南  html如何与html链接_实现多个HTML页面互相链接【互相】  如何在景安服务器上快速搭建个人网站?