采用html5使得选择图片改变时,预览框中图片随之改变。input文件选择框美化。原生js完成文件异步提交

效果图:

代码如下,可直接复制并保存为html文件打开查看效果

<html>
<head><title>Title</title><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"><script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script><script>//        html5实现图片预览功能
        $(function(){$("#file").change(function(e){var file = e.target.files[0]||e.dataTransfer.files[0];$('#photoCover').val(document.getElementById("file").files[0].name);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"){alert("success"); //成功
                }}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="" 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="" 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="" width="100px" height="100px"></div></div><div class="control-group"><label for="requirement" class="col-md-3 control-label span3">图片上传</label><div class="col-md-9"><div class="input-group"><input id="photoCover" class="form-control" readonly type="text"><label class="input-group-btn"><input id="file" type="file" style="left:-9999px;position:absolute;"><span class="btn btn-default">Browse</span></label></div></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">取消</a></div></div></form></div></div>
</div></body>
</html>

转载于:https://www.cnblogs.com/LeoBoy/p/6186352.html

原生js实现ajax的文件异步提交功能、图片预览功能.实例相关推荐

  1. 用openoffice+jodconverter+webuploader+pdf.js实现文件上传、在线预览功能

    一.背景 最近公司一个项目要实现一个文件上传以及多文档在线预览的功能,之前一直做无线工具开发的,没有涉及到这些东西.另外项目组缺java开发人员,而且自己也只是一个半吊子前端加小半吊子java开发人员 ...

  2. js实现图片预览功能

    最近在项目上遇到图片无法预览的问题,最后用change事件实现,不太完美但可以先使用 js代码 1 $(function () { 2 $("#Picture").change(f ...

  3. php上传头像的代码,php实现文件上传及头像预览功能

    php文件上传原理是通过form表单的enctype="multipart/form-data"属性将文件临时放到wamp文件夹中的tmp目录下,再通过后台php程序将文件保存在体 ...

  4. 原生JS实现Ajax下载文件

    /*** url 下载url* filename 下载文件名称*/ function download(url, filename) {var xhr = new XMLHttpRequest();x ...

  5. 图片预览(原生js实现)

    功能描述 很多网站都是使用浏览器自带图片浏览功能,但看起来很low,想手动实现图片预览功能,点击图片弹出大图预览框在屏幕中间显示,根据图片宽高自适应屏幕大小 效果图 具体代码实现 页面preview. ...

  6. axios获取图片显示_Vue.js+axios图片预览以及上传显示进度

    在平时项目开发中,我们经常会对文件做一些上传操作,不仅仅要实现基本需求,也要兼顾用户体验,根据自己在工作中遇到的问题谈谈对图片上传的预览以及上传进度的优化. 1.搭建项目 基于Vue.js+axios ...

  7. 原生图片预览实现及由此引出的图片自适应宽高问题探索

    看到手机相册,突发奇想:能不能用实现一个原生的页面"相册"?或者说,传统网页中怎么实现图片预览功能? 如果在原生网页中使用插件,那必不可少的要引入一堆东西(并不是鄙视插件,只是为了 ...

  8. Vue+wangeditor富文本+element——--上传+下载文件+图片预览

    一:上传文件 HTML <el-upload class="upload-demo" action="haircut/upload" :on-previe ...

  9. JS实现图片预览与等比缩放

    案例仅为图片预览功能,省略图片上传步骤,框架为easyui. HTML代码: @*text-align:center;水平居中 vertical-align: middle;display: tabl ...

最新文章

  1. Java调用ocx控件以及dll
  2. mysql 去重_mysql 去重留一
  3. 程序员的十层楼(第11层)
  4. ​Linux CPU 性能优化指南
  5. php mysqliquery 返回值,PHP mysqli_multi_query() 函数_程序员人生
  6. 隐藏功能_IOS 14.2 隐藏功能
  7. 对数据库连接池的理解
  8. C++ 用libcurl库进行http 网络通讯编程
  9. 漫步ASP.NET MVC的处理管线
  10. hive数据库操作大全
  11. MATLAB函数——lowpass
  12. VS2015“有太多的错误导致IntelliSense引擎无法正常工作,其中有些错误无法在编辑器”
  13. 了解 TCP 系统调用序列
  14. 管理Kindle的“我的剪切”
  15. 斗鱼直播项目(已开源)
  16. 关于上拉电阻和下拉电阻的作用
  17. 英雄远征Erlang源码分析(9)-战斗流程解析
  18. 如何将播客内容下载到 Mac 进行离线收听
  19. macOS 开发 - NSMenu 添加目录
  20. keil mdk 编译过程中出现的Could not open file .\core_cm3.0 问题

热门文章

  1. iOS开发-NSString去掉所有换行及空格
  2. 【移动开发】Android中不用图片资源也能做出好看的界面
  3. Android PullToRefreshListView和ViewPager的结合使用
  4. 《Hack与HHVM权威指南》——1.5.2 覆盖方法的类型
  5. 算法笔记_098:蓝桥杯练习 算法提高 盾神与条状项链(Java)
  6. 在PHPStorm中支持ThinkPHP代码提示
  7. Python中使用ElementTree解析xml
  8. 生产环境使用ioprofile一定要谨慎
  9. Google Maps打开出现internal error错误
  10. 示波器输入阻抗匹配问题