JavaScript中怎么实现异步图像上传,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
为甘谷等地区用户提供了全套网页设计制作服务,及甘谷网站建设行业解决方案。主营业务为成都网站设计、成都做网站、甘谷网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
此代码使用VanillaJS编写,不使用任何第三方JavaScript库,因此如果您使用任何第三方框架,您可以使用框架或库提供的构造来调整概念并实现它。
如图所示在上面的例子中,有两个HTML元素的例子。< img > DOM元素有显示选中的图像。<input> DOM元素为用户选择图像文件。使用JavaScript文件API,可以听改变事件处理程序和加载图像访问使用JavaScript。
使用JavaScript访问图像后,将其加载到HTML5 FileReader并转换为Base64数据URL。然后使用Base64数据URL更新 DOM元素。
使用Ajax,图像上传被启动到服务器。使用JavaScript, HTML表单提交将异步触发,具体的代码将根据服务器实现而异,特别是在HTTP方法(例如,这里是POST)和URL方面。
如果服务器响应包含图像URL,则可以使用它相应地更新 DOM元素,或者如果服务器维护了适当的图像访问路径约定(例如,/images/),则可以使用它加载图像。
<!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/article12/gcjegc.html
成都网站建设公司_创新互联,为您提供营销型网站建设、微信公众号、网页设计公司、、品牌网站设计、手机网站建设
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联