JavaScript异步图像上传如何实现
这篇文章主要介绍“JavaScript异步图像上传如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript异步图像上传如何实现”文章能帮助大家解决问题。
使用的代码
此代码使用VanillaJS编写,不使用任何第三方JavaScript库,因此如果您使用任何第三方框架,您可以使用框架或库提供的构造来调整概念并实现它。
步骤1:将图像加载到浏览器
如图所示在上面的例子中,有两个HTML元素的例子。< img > DOM元素有显示选中的图像。<input> DOM元素为用户选择图像文件。使用JavaScript文件API,可以听改变事件处理程序和加载图像访问使用JavaScript。
步骤2:生成Base64缩略图
使用JavaScript访问图像后,将其加载到HTML5 FileReader并转换为Base64数据URL。然后使用Base64数据URL更新 DOM元素。
步骤3:使用Ajax上传文件
使用Ajax,图像上传被启动到服务器。使用JavaScript, HTML表单提交将异步触发,具体的代码将根据服务器实现而异,特别是在HTTP方法(例如,这里是POST)和URL方面。
如果服务器响应包含图像URL,则可以使用它相应地更新 DOM元素,或者如果服务器维护了适当的图像访问路径约定(例如,/images/),则可以使用它加载图像。
步骤4:(可选)客户端缩略图生成<!DOCTYPEhtml><html><body><inputtype="file"id="imageFileInput"accept=".jpg,.jpeg,.png"/><imgsrc="//:0"id="preview"/><script>document.getElementById('imageFileInput').addEventListener('change',function(){varimg=this.files[0];uploadImage(img,'/image/upload',function(url){//Imageuploadtoserverresponse//ShowtheimageusingsetImageUrl(URL)});getBase64ImageUrl(img,function(base64ImageUrl){varheight=100,width=100;getThumbnail(base64ImageUrl,height,width,function(base64ThumbnailUrl){setImageUrl(base64ThumbnailUrl);})});},false);functionsetImageUrl(url){document.getElementById('preview').setAttribute('src',url);};functionuploadImage(img,url,callback){varxhr=newXMLHttpRequest();varfd=newFormData();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);};functiongetBase64ImageUrl(img,callback){varreader=newFileReader();reader.readAsDataURL(img);reader.onload=function(){callback&&callback(reader.result);};reader.onerror=function(error){console.log('Error:',error);};};functiongetThumbnail(base64ImageUrl,height,width,callback){varcanvas=document.createElement('canvas');varctx=canvas.getContext("2d");varimage=newImage();image.src=base64ImageUrl;image.onload=function(){ctx.drawImage(image,0,0,width,height);callback&&callback(canvas.toDataURL());};}</script></body></html>
关于“JavaScript异步图像上传如何实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。