, bien que cette méthode puisse également remplir cette fonction, l'expérience utilisateur peut être affectée. être compromis. C'est un peu différent, donc cet article enregistre l'utilisation de css+js pour implémenter les fonctions de prévisualisation et de téléchargement compressé après la sélection de l'image. Certaines informations proviennent d'Internet et sont enregistrées et organisées ici."/> , bien que cette méthode puisse également remplir cette fonction, l'expérience utilisateur peut être affectée. être compromis. C'est un peu différent, donc cet article enregistre l'utilisation de css+js pour implémenter les fonctions de prévisualisation et de téléchargement compressé après la sélection de l'image. Certaines informations proviennent d'Internet et sont enregistrées et organisées ici.">
Maison > Article > interface Web > html+css+js implémente l'aperçu des photos et le partage d'exemples de fonctions de téléchargement d'images
Lorsque nous créons des pages Web, nous devons souvent télécharger des images. Nous pouvons choisir des images ou prendre des photos à télécharger si nous utilisons simplement
<input type="file"/>
, bien que cette méthode puisse également réaliser la fonction, il a une expérience utilisateur Cela peut être un peu différent, c'est pourquoi cet article enregistre l'utilisation de css+js pour implémenter les fonctions de prévisualisation et de téléchargement compressé après la sélection de l'image. Certaines informations proviennent d'Internet et sont enregistrées et organisées. ici.
Aperçu de l'effet :
1. Créer index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>拍照上传</title> <link rel="stylesheet" href="index.css"/> <script type='text/javascript' src='index.js' charset='utf-8'></script> </head> <body> <form id="mainForm"> <p class="content"> <p class="label">身份证</p> <p class="img-area"> <p class="container"> <input type="file" id='id-face' name='face' accept="image/*" /> <p id='face-empty-result'> <img style='width:4rem' src="https://github.com/wangheng3751/my-resources/blob/master/images/camera.png?raw=true" alt=""> <p>身份证正面照</p> </p> <img style='width: 100%' id='face-result'/> </p> <p class="container" style='margin-top:0.5rem;'> <input type="file" id='id-back' name='back' accept="image/*" /> <p id='back-empty-result'> <img style='width:4rem' src="https://github.com/wangheng3751/my-resources/blob/master/images/camera.png?raw=true" alt=""> <p>身份证反面照</p> </p> <img style='width: 100%' id='back-result'/> </p> </p> </p> <p class="btn"> 提交 </p> </form> </body> </html>
2. Créer index.css
body{ margin: 0 } .content{ padding:0.5rem; display: flex; align-items: center; border-bottom: 1px #999 solid } .label{ width:5rem; } .img-area{ flex:1 } .container{ background-color:#e7e7e7; position: relative; } .container p{ text-align: center; padding:0.5rem 0 } .container input{ opacity:0; filter:alpha(opacity=0); height: 100%; width: 100%; position: absolute; top: 0; left: 0; z-index: 9; } .container p{ font-size: 0.9rem; color:#999 } .btn{ background-color: #4363ab; color: #fff; text-align: center; padding: 0.5rem 1rem; width:80%; border-radius: 0.2rem; margin: 2rem auto; font-weight: 600; font-size: 1.2rem }
3. Créer index.js
window.onload=function(){ document.getElementById("id-face").addEventListener("change", function(){ onFileChange(this,"face-result","face-empty-result") }); document.getElementById("id-back").addEventListener("change", function(){ onFileChange(this,"back-result","back-empty-result") }); document.getElementsByClassName("btn")[0].addEventListener("click", function(){ submit(); }); }; /** * 选中图片时的处理 * @param {*} fileObj input file元素 * @param {*} el //选中后用于显示图片的元素ID * @param {*} btnel //未选中图片时显示的按钮区域ID */ function onFileChange(fileObj,el,btnel){ var windowURL = window.URL || window.webkitURL; var dataURL; var imgObj = document.getElementById(el); document.getElementById(btnel).style.display="none"; imgObj.style.display="block"; if (fileObj && fileObj.files && fileObj.files[0]) { dataURL = windowURL.createObjectURL(fileObj.files[0]); imgObj.src=dataURL; } else { dataURL = fileObj.value; imgObj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; imgObj.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = dataURL; } } /** * 将图片压缩后返回base64格式的数据 * @param {*} image img元素 * @param {*} width 压缩后图片宽度 * @param {*} height 压缩后图片高度 * @param {*} qua //图片质量1-100 */ function compressImageTobase64(image,width,height,qua){ var quality = qua ? qua / 100 : 0.8; var canvas = document.createElement("canvas"), ctx = canvas.getContext('2d'); var w = image.naturalWidth, h = image.naturalHeight; canvas.width = width||w; canvas.height = height||h; ctx.drawImage(image, 0, 0, w, h, 0, 0, width||w, height||h); var data = canvas.toDataURL("image/jpeg", quality); return data; } //提交 function submit(){ //1、form提交 //document.getElementById("mainForm").submit(); //2、压缩后ajax提交 var face_data=compressImageTobase64(document.getElementById("face-result"),200,100,90); var back_data=compressImageTobase64(document.getElementById("back-result"),200,100,90); var formData = new FormData(); formData.append("face",face_data); formData.append("back",back_data); //需引入jQuery $.ajax({ url:"/地址", type: 'POST', cache: false, data: formData, timeout:180000, processData: false, contentType: false, success:function(r){ }, error:function(r){ } }); }Recommandations associées :
Tutoriel sur la façon d'utiliser JavaScript pour prévisualiser et télécharger des images sans actualiser la page
Solution au problème trouvé dans l'aperçu javascript des images_Image téléchargées Effets spéciaux
jQuery implémente l'aperçu local des images_jquery téléchargées
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!