原生js实现ajax的文件异步提交功能图片预览功能.实例
Posted YangJavaer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生js实现ajax的文件异步提交功能图片预览功能.实例相关的知识,希望对你有一定的参考价值。
<%-- Created by IntelliJ IDEA. User: yh Date: 2016/12/14 Time: 17:13 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ include file="/WEB-INF/include/taglib.jsp" %> <html> <head> <%@ include file="/WEB-INF/include/head.jsp" %> <title>Title</title> <style> #uname { height: auto; } #pwd { height: auto; } </style> <script> // html5实现图片预览功能 $(function(){ $("#file").change(function(e){ var file = e.target.files[0]||e.dataTransfer.files[0]; if(file){ var reader = new FileReader(); reader.onload=function(){ $("img").attr("src", this.result); } reader.readAsDataURL(file); } }); }) function saveUser(){ var id = $("#id").val().trim(); var uname = $("#uname").val().trim(); var pwd = $("#pwd").val().trim(); var file = document.getElementById("file").files[0]; // 原生ajax实现文件上传 var form = new FormData(); form.append("uname", uname); // 可以增加表单数据 form.append("id", id); form.append("pwd", pwd); if(file){ form.append("file", file); } var xhr = null; //得到xhr对象 if(XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject("Microsoft.XMLHTTP"); } xhr.open("post", "${ctx}/user/save", true);//设置提交方式,url,异步提交 xhr.onload = function () { var data = xhr.responseText; //得到返回值 // alert(data); var errorMsg = JSON.parse(data); alert(errorMsg.msg); if(errorMsg.code == "0"){ top.Dialog.close(); //成功,关闭弹窗 } } xhr.send(form); } </script> </head> <body style="overflow:scroll;overflow-y:hidden;overflow-x:hidden"> <div style="height: 20px"></div> <div class="container"> <div class="row"> <div class="col-md-6 col-md-offset-3"> <form class="form-horizontal" enctype="multipart/form-data" role="form"> <input type="hidden" value="${user.id}" id="id"/> <div class="control-group"> <label for="uname" class="col-md-3 control-label span3">姓 名:</label> <div class="col-md-9"> <input type="text" class="form-control span3" value="${user.uname}" id="uname" placeholder="请输入姓名"> </div> </div> <div class="control-group"> <label for="pwd" class="col-md-3 control-label span3">密码:</label> <div class="col-md-9"> <input type="password" class="form-control span3" value="${user.pwd}" id="pwd" placeholder="请输入密码"> </div> </div> <div class="control-group"> <label class="col-md-3 control-label span3"></label> <div class="col-md-9"> <img src="${ctxStatic}/uploadImage/${user.img}" width="80px" height="20px"> </div> </div> <div class="control-group"> <label for="file" class="col-md-3 control-label span3">图片上传:</label> <div class="col-md-9"> <input type="file" class="form-control span3" id="file"> <!--<input type="text" id="imgPath">--> </div> </div> <div class="control-group"> <label class="col-md-2 control-label span2"></label> <div class="col-md-10"> <button type="button" class="btn btn-small btn-primary" onclick="saveUser()">提交</button> <a type="button" class="btn btn-small btn-danger" onclick="javascript:top.Dialog.close();">取消</a> </div> </div> </form> </div> </div> </div> </body> </html>
以上是关于原生js实现ajax的文件异步提交功能图片预览功能.实例的主要内容,如果未能解决你的问题,请参考以下文章
ajaxFileUpload异步上传图片,服务器文件叫多,如何删除啊~~
基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽)
简单的实现图片预览, 通过原生ajax以及 jQuery两种方法实现图片预览,有更好的办法可以留言喔................