Ajax實現上傳圖像功能的示例詳解
更新時間:2022年04月11日 10:28:07 作者:一夕ξ
這篇文章主要介紹了如何利用Ajax實現上傳圖像,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
最終效果展示
xhr發(fā)起請求
<!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" 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發(fā)起請求
<!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實現上傳圖像功能的示例詳解的文章就介紹到這了,更多相關Ajax上傳圖像內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
ajaxrequest.js ajaxrequest 0.7最新版 使用AJAXRequest進行AJAX應用程序開發(fā)入
ajaxrequest.js ajaxrequest 0.7最新版 使用AJAXRequest進行AJAX應用程序開發(fā)入門小技巧...2007-12-12Ajax通過XML異步提交的方法實現從數據庫獲取省份和城市信息實現二級聯(lián)動(xml方法)
這篇文章主要介紹了Ajax通過XML異步提交的方法實現從數據庫獲取省份和城市信息實現二級聯(lián)動(xml方法)的相關資料,我們要根據異步提交,局部刷新的思想來實現來提高用戶交互問題,對ajax二級聯(lián)動效果感興趣的朋友一起看看吧2016-11-11django使用ajax post數據出現403錯誤如何解決
在django中,使用jquery ajax post數據,會出現403的錯誤,該如何解決呢?下面由腳本之家小編幫大家解決django使用ajax post數據出現403錯誤,需要的朋友可以參考下2015-09-09