JavaScript异步图像上传如何实现

这篇文章主要介绍“JavaScript异步图像上传如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript异步图像上传如何实现”文章能帮助大家解决问题。

创新互联建站专业为企业提供余庆网站建设、余庆做网站、余庆网站设计、余庆网站制作等企业网站建设、网页设计与制作、余庆企业网站模板建站服务,10年余庆做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

使用的代码

此代码使用VanillaJS编写,不使用任何第三方JavaScript库,因此如果您使用任何第三方框架,您可以使用框架或库提供的构造来调整概念并实现它。

步骤1:将图像加载到浏览器

JavaScript异步图像上传如何实现

如图所示在上面的例子中,有两个HTML元素的例子。<  img > DOM元素有显示选中的图像。<input>  DOM元素为用户选择图像文件。使用JavaScript文件API,可以听改变事件处理程序和加载图像访问使用JavaScript。

步骤2:生成Base64缩略图

JavaScript异步图像上传如何实现

使用JavaScript访问图像后,将其加载到HTML5 FileReader并转换为Base64数据URL。然后使用Base64数据URL更新 DOM元素。

步骤3:使用Ajax上传文件

JavaScript异步图像上传如何实现  

JavaScript异步图像上传如何实现  

使用Ajax,图像上传被启动到服务器。使用JavaScript, HTML表单提交将异步触发,具体的代码将根据服务器实现而异,特别是在HTTP方法(例如,这里是POST)和URL方面。

如果服务器响应包含图像URL,则可以使用它相应地更新 DOM元素,或者如果服务器维护了适当的图像访问路径约定(例如,/images/),则可以使用它加载图像。

步骤4:(可选)客户端缩略图生成 

<!DOCTYPE html>  <html>  <body>  <input type="file" id="imageFileInput" accept=".jpg, .jpeg, .png" />  <img src="//:0" id="preview" />  <script>  document.getElementById('imageFileInput').addEventListener('change', function() {  var img = this.files[0];  uploadImage(img, '/image/upload', function(url) {  // Image upload to server response  // Show the image using setImageUrl(URL)  });  getBase64ImageUrl(img, function(base64ImageUrl) {  var height = 100,  width = 100;  getThumbnail(base64ImageUrl, height, width, function(base64ThumbnailUrl) {  setImageUrl(base64ThumbnailUrl);  })  });  }, false);  function setImageUrl(url) {  document.getElementById('preview').setAttribute('src', url);  };  function uploadImage(img, url, callback) {  var xhr = new XMLHttpRequest();  var fd = new FormData();  xhr.open("POST", url, true);  xhr.onreadystatechange = function() {  if (xhr.readyState == 4 && xhr.status == 200) {  callback && callback(xhr.responseText);  }  };  fd.append("upload_image", img);  xhr.send(fd);  };  function getBase64ImageUrl(img, callback) {  var reader = new FileReader();  reader.readAsDataURL(img);  reader.onload = function() {  callback && callback(reader.result);  };  reader.onerror = function(error) {  console.log('Error: ', error);  };  };  function getThumbnail(base64ImageUrl, height, width, callback) {  var canvas = document.createElement('canvas');  var ctx = canvas.getContext("2d");  var image = new Image();  image.src = base64ImageUrl;  image.onload = function() {  ctx.drawImage(image, 0, 0, width, height); callback && callback(canvas.toDataURL());  };  }  </script>  </body>  </html>

关于“JavaScript异步图像上传如何实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注创新互联行业资讯频道,小编每天都会为大家更新不同的知识点。

当前标题:JavaScript异步图像上传如何实现
当前网址:https://www.cdcxhl.com/article48/jsephp.html

成都网站建设公司_创新互联,为您提供响应式网站服务器托管移动网站建设手机网站建设网站排名云服务器

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管