首页前端开发其他前端知识用Ajax怎样实现上传图像,代码如何写

用Ajax怎样实现上传图像,代码如何写

时间2024-03-27 02:18:04发布访客分类其他前端知识浏览1233
导读:这篇文章分享给大家的内容是关于用Ajax怎样实现上传图像,代码如何写,本文介绍得很详细,内容很有参考价值,希望可以帮到有需要的小伙伴,接下来就让小编带领大家一起了解看看吧。 最终效果展示 xhr发起请求 <!DOCTYPE html...
这篇文章分享给大家的内容是关于用Ajax怎样实现上传图像,代码如何写,本文介绍得很详细,内容很有参考价值,希望可以帮到有需要的小伙伴,接下来就让小编带领大家一起了解看看吧。

最终效果展示

xhr发起请求

!DOCTYPE html>
    
html lang="en">
    
 
head>
    
    meta charset="UTF-8">
    
    meta http-equiv="X-UA-Compatible" content="IE=edge">
    
    meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    title>
    Document/title>
    
    link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" >
    
    script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js">
    /script>
    
    script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js">
    /script>
    
/head>
    
 
body>
    
    !--1、文件选择框  -->
    
    input type="file" id="file1">
    
    !-- 2、上传文件的按钮 -->
    
    button id="btnupload">
    上传文件/button>
    
    br/>
    
    div class="progress" style="width:300px;
    margin:5px;
    ">
    
        div class="progress-bar progress-bar-striped active" style="width: 0%;
    " id="precent">
    
            0%
        /div>
    
    /div>
    
    !-- 3、img标签 来显示上传成功以后的图片 -->
    
    img alt="" id="img" width="800">
    
 
    script>

       var precent = document.querySelector('#precent')
        var btnupload = document.querySelector('#btnupload')
        btnupload.addEventListener('click', function() {

            var files = document.querySelector('#file1').files
            if (files.length = 0) {

                return alert('请选择要上传的文件')
            }

 
            var fd = new FormData()
            fd.append('avatar', files[0])
            var xhr = new XMLHttpRequest()
 
            xhr.upload.onprogress = function(e) {
    
                console.log(e);

                if (e.lengthComputable) {
    
                    var h = Math.ceil((e.loaded / e.total) * 100)
                    precent.style.width = h + '%'
                    precent.innerHTML = h + '%'
                    console.log(h);

                }

            }

            xhr.upload.onload = function() {

                $('#precent').removeClass().addClass('progress-bar progress-bar-success')
            }

 
            xhr.open('post', 'http://www.liulongbin.top:3006/api/upload/avatar')
            xhr.send(fd)
            xhr.onreadystatechange = function() {
    
                if (xhr.readyState == 4 &
    &
 xhr.status == 200) {
    
                    var data = JSON.parse(xhr.responseText)
                    console.log(data);

                    if (data.status == 200) {
    
                        console.log('上传成功');

                        document.querySelector('#img').src = 'http://www.liulongbin.top:3006' + data.url
                    }
 else {
    
                        console.log('上传失败');

                    }

                }

            }

        }
    )
    /script>
    
/body>
    
 
/html>
    

ajax发起请求

!DOCTYPE html>
    
html lang="en">
    
 
head>
    
    meta charset="UTF-8">
    
    meta http-equiv="X-UA-Compatible" content="IE=edge">
    
    meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    title>
    Document/title>
    
    script src="jquery.js">
    /script>
    
    style>

        img {
    
            width: 50px;
    
            height: 50px;
    
            display: none;

        }
    
    /style>
    
/head>
    
 
body>
    
    input type="file" id="file1">
    
    button id="btnupload">
    上传文件/button>
    
    /br>
    
    img src="5-121204193R5-50.gif" alt="" id="loading">
    
    script>

        $(function() {

            $(document).ajaxStart(function() {

                $('#loading').show()
            }
)
            $(document).ajaxStop(function() {

                $('#loading').hide()
            }
)
            $('#btnupload').on('click', function() {

                var files = $('#file1')[0].files
                if (files.length = 0) {

                    alert('请选择文件')
                }
    
                console.log('ok');

                var fd = new FormData()
                fd.append('avatar', files[0])
                $.ajax({

                    method: 'POST',
                    url: 'http://www.liulongbin.top:3006/api/upload/avatar',
                    data: fd,
                    processData: false,
                    contentType: false,
                    success: function(res) {
    
                        console.log(res);

                    }

                }
)
 
            }
)
 
        }
    )
    /script>
    
/body>
    
 
/html>
    

通过以上内容的阐述,相信大家对“用Ajax怎样实现上传图像,代码如何写”已经有了进一步的了解,更多相关的问题,欢迎关注网络或到官网咨询客服。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 用Ajax怎样实现上传图像,代码如何写
本文地址: https://pptw.com/jishu/653914.html
golang可以高并发吗,如何实现的 AJAX原理的通俗理解是什么,如何对AJAX封装

游客 回复需填写必要信息