<template>
  <div class="">
    <!-- 选择后预览 -->
    <img v-if="imgOneUrl" :src="imgOneUrl" alt="">
    <!-- 默认图片 -->
    <img v-else src="@/assets/images/upImg-1.png" alt="">
    <input type="file" name="file[]" class="file" accept="image/*" @change="upImgOne($event)">
  </div>
</template>
<script>
export default {
    data(){
      return{
        imgOne:'',
        imgOneUrl:'',
      }
    },
    methods:{
        //选取并解读照片信息
        upImgOne(e) {
            this.imgOne = e.target.files[0];
            let reads = new FileReader();
            reads.readAsDataURL(this.imgOne);
            reads.onload = () => {
                this.imgOneUrl = reads.result;
                this.upLodeImg()        //多次上传文件多次调用这个方法,需要传参0,1,2
            }
        },
        upLodeImg(){
            var formData = new FormData() // 声明一个FormData对象
            var formData = new window.FormData() 
            formData.append('file', document.querySelector('input[type=file]').files[0])
            //formData.append('file', document.querySelectorAll('input[type=file]')[index].files[0])   //每次只上传单个文件,
            $.ajax({  
                url: config.API + '/api/user/upload/xxx' ,  
                type: 'POST',  
                data: formData,  
                async: false,  
                cache: false,  
                contentType: false,  
                processData: false,  
                success: function (resp) {  
                    console.log(resp);
                },  
                error: function (error) {  
                    alert(error);  
                }  
            });
        },
    },
    mounted:function(){} 
}
</script>
<style scoped>
</style>
upLodeImg(index){
            var formData = new FormData() // 声明一个FormData对象
            var formData = new window.FormData() 
            formData.append('file', document.querySelectorAll('input[type=file]')[index].files[0])
            formData.append('token', this.token)
            // let data = {
            //     token:this.token,
            //     file:formData,
            //     methodPost:true,
            // }
            let that = this
            let _that = this
            let _this = this
            let _thows = this
            $.ajax({  
                url: config.API + '/api/user/upload/one' ,  
                type: 'POST',  
                data: formData,  
                async: false,  
                cache: false,  
                contentType: false,  
                processData: false,  
                success: function (resp) {  
                    console.log(resp);
                    let data = resp.data
                    if(index==0){
                        _thows.firImg = data.url
                    }else if(index==1){
                        that.secImg = data.url
                    }else if(index==2){
                        _that.thrImg = data.url
                    }else{
                        _this.thiImg = data.url
                    }
                },  
                error: function (error) {  
                    alert(error);  
                }  
            });
        },

vue通过input选取图片,jq的ajax向服务器上传img的更多相关文章

  1. jquery 通过ajax FormData 对象上传附件

    之前上传附件都是用插件,或者用form表单体检(这个是很久以前的方式了),今天突发奇想,自己来实现附件上传,具体实现如下 html: <div>   流程图: <input id=& ...

  2. 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传

    现在科技太发达,移动设备像素越来越高,随便一张照片2M+,但是要做移动端图片上传和pc上略有不同,移动端你不能去限制图片大小,让用户先处理图片再上传,这样不现实.所以理解的解决方案就是在上传先进行图片 ...

  3. JS案例之4——Ajax多图上传

    近期项目中有好几次用到多图上传,第一次在项目中真正用到Ajax技术,稍微整理了下,贴个案例出来. 我们传统的做法是当用户提交一个表单时,就向web服务器端发送一个请求.服务器接受并处理传来的表单信息, ...

  4. MVC 5.0(or5.0↓) Ajax.BeginForm 异步上传附件问题,答案是不能的!

    MVC 5.0(or5.0↓)  Ajax.BeginForm 异步上传附件问题,答案是不能的! (请注意我这里说的异步!) 来看一下下面这段一步提交file的代码 //前台 .cshtml 文件 & ...

  5. ajaxfileupload.js插件结合一般处理文件实现Ajax无刷新上传

    先上几张图更直观展示一下要实现的功能.本功能主要通过Jquery ajaxfileupload.js插件结合ajaxUpFile.ashx一般应用程序处理文件实现Ajax无刷新上传功能,结合NPOI2 ...

  6. 文件的上传(表单上传和ajax文件异步上传)

    项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举的主要对于小文件上传的处理! 资源下载: 一. ...

  7. ajax提交表单、ajax实现文件上传

    ajax提交表单.ajax实现文件上传,有需要的朋友可以参考下. 方式一:利用from表单的targer属性 + 隐藏的iframe 达到类似效果, 支持提交含有文件和普通数据的复杂表单 方式二:使用 ...

  8. Ajax 与文件上传

    一 Ajax篇 1 ajax简介(Asynchronous Javascript And XML) 异步,Js,XML,即使用Javascript语言与服务器进行异步交互,传输的数据为xml(可扩展标 ...

  9. PHP+Ajax实现文件上传功能

    前端显示界面: 1 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  10. 基于 Django的Ajax实现 文件上传

    ---------------------------------------------------------------遇到困难的时候,勇敢一点,找同学朋友帮忙,找导师求助. Ajax Ajax ...

随机推荐

  1. module 'numpy' has no attribute 'bool'

    module 'numpy' has no attribute 'bool' 问题: Traceback (most recent call last): File "/home/test. ...

  2. JNDI注入分析

    JNDI介绍 JNDI(Java Naming and Directory Interface,Java命名和目录接口)是为Java应用程序提供命名和目录访问服务的API,允许客户端通过名称发现和查找 ...

  3. c语言的一些类型声明符

    基本类型: char: 字符类型 int: 整数类型 float: 单精度浮点数类型 double: 双精度浮点数类型 void: 无类型 修饰符: short: 短整数类型 long: 长整数类型 ...

  4. 【已解决】mybatis注解@Param失效,无法获取到值(org.apache.ibatis.binding.BindingException: Parameter 'policy' not found. Available parameters are [arg1, arg0, param1, param2])

    案发现场: 传递的参数是一个实体类 PolicyDictionary 此时我无法拿到数据: 解决思路一(不推荐) 删去@Param注解,使用mybatis默认的参数顺序: 不使用@param注解传递多 ...

  5. 【Java】使用位运算完成数组中两个变量交换位置

    1 /** 2 * 3 */ 4 package com.raliable.chapter_0; 5 /** 6 * @author : Administrator 7 * @date :2022年4 ...

  6. Linux下Bochs,NASM安装和使用

    安装环境 以Ubuntu为例,先更新一下: sudo apt-get update sudo apt-get upgrade 然后安装Bochs环境: sudo apt-get install bui ...

  7. 攻防世界 Replace Reverse二星题

    解题过程中,虽然解出来了,但是磕磕绊绊犯了一些错误,记录一下 分析过程 PE查壳 有一个upx壳,最下面给了脱壳提示: upx.exe -d Replace.exe 脱壳结束,丢到IDA里,SHIF+ ...

  8. ArkUI中的线程和看门狗机制

    一.前言 本文主要分析ArkUI中涉及的线程和看门狗机制. 二.ArkUI中的线程 应用Ability首次创建界面的流程大致如下: 说明: • AceContainer是一个容器类,由前端.任务执行器 ...

  9. C#中十进制转与二进制相互转换

    将十进制转换为二进制 将二进制转换为十进制

  10. Excel分析师的工资能一直飙升,原因其实是...

    世界上的数据分析师分为使用Excel的分析师和其他分析师两类. 即使在互联网数据分析界,java遍街头,Python不如狗,Excel也是不可替代的. 上班前以为自己是西装笔挺的Excel数据分析师, ...