JavaScript实现图片上传并预览并提交ajax


Posted in Javascript onSeptember 30, 2019

本文实例为大家分享了JavaScript实现图片上传并预览并提交ajax的具体代码,供大家参考,具体内容如下

图片上传并预览

JavaScript实现图片上传并预览并提交ajax

HTML

<div class="file-box">
 <img id="preview" />
 <input type="text" id="imgfield" class="txt" placeholder="预览">
 <input type="file" name="file" id = "input_file" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" "imgPreview(this)" > 
</div>

css

.file-box {
 position: relative;
 display: inline-block;
}
.file-box img {
 width: 50px;
 height: 50px;
 border-radius: 50%;
 position: absolute;
 top: -30px;
 left: 0;
 display: inline-block;
 border: none;
}
.file-box .txt,.file-box .file {
 width: 70px;
 height: 36px;
 position: absolute;
 top: -20px;
 left: 100px;
 text-align: center;
}

JS

function imgPreview(fileDom) {
 //判断是否支持FileReader
 if(window.FileReader) {
 var reader = new FileReader();
 } else {
 alert("您的设备不支持图片预览功能,如需该功能请升级您的设备!");
 }
 //获取文件
 var file = fileDom.files[0];
 var imageType = /^image\//;
 //是否是图片
 if(!imageType.test(file.type)) {
 alert("请选择图片!");
 return;
 }
 //读取完成
 reader.onload = function(e) {
 //获取图片dom
 var img = document.getElementById("preview");
 //图片路径设置为读取的图片
 img.src = e.target.result;
 };
 reader.readAsDataURL(file);
}

上传图片提交ajax

如果想把图片信息通过ajax传给后端,则需要通过new FormData() 上传图片信息,然后使用 append() 方法向该对象里添加字段,具体代码如下:

(注:以下代码在图片预览成功后执行,也就是在reader.readAsDataURL(file); 后)

var formData = new FormData(); 
formData.append('file', $('#input_file')[0].files[0]); //添加图片信息的参数
formData.append('sizeid',123); //添加其他参数
$.ajax({
 url: '/material/uploadFile',
 type: 'POST',
 cache: false, //上传文件不需要缓存
 data: formData,
 processData: false, // 告诉jQuery不要去处理发送的数据
 contentType: false, // 告诉jQuery不要去设置Content-Type请求头
 success: function (data) {
 var rs = eval("("+data+")");
 if(rs.state==1){
 tipTopShow('上传成功!');
 }else{
 tipTopShow(rs.msg);
 }
 },
 error: function (data) {
 tipTopShow("上传失败");
 }
})

JavaScript实现图片上传并预览并提交ajax

更多精彩内容请参考专题《ajax上传技术汇总》,《javascript文件上传操作汇总》和《jQuery上传操作汇总》进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
告诉大家什么是JSON
Jun 10 Javascript
通过判断JavaScript的版本实现执行不同的代码
May 11 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
Jul 13 Javascript
基于Turn.js 实现翻书效果实例解析
Jun 20 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
Jul 10 Javascript
Google 地图事件实例讲解
Aug 06 Javascript
jQuery基本选择器之标签名选择器
Sep 03 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
微信小程序异步处理详解
Nov 10 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
Dec 28 Javascript
Koa2 之文件上传下载的示例代码
Mar 29 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
Jul 25 jQuery
浅探express路由和中间件的实现
Sep 30 #Javascript
JavaScript实现单图片上传并预览功能
Sep 30 #Javascript
解决vue cli使用typescript后打包巨慢的问题
Sep 30 #Javascript
laravel实现中文和英语互相切换的例子
Sep 30 #Javascript
JavaScript键盘事件响应顺序详解
Sep 30 #Javascript
vue自动化路由的实现代码
Sep 30 #Javascript
js实现图片上传即时显示效果
Sep 30 #Javascript
You might like
phpMyadmin 用户权限中英对照
2010/04/02 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
实现php删除链表中重复的结点
2018/09/27 PHP
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
单击浏览器右上角的X关闭窗口弹出提示的小例子
2013/06/12 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
BootStrap selectpicker
2016/06/20 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
Node.js的特点详解
2017/02/03 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
nodejs语言实现验证码生成功能的示例代码
2019/10/13 NodeJs
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
使用python对excle和json互相转换的示例
2018/10/23 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
python爬虫基础知识点整理
2020/06/02 Python
python实现定时发送邮件
2020/12/23 Python
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
创伤外科专业推荐信范文
2013/11/19 职场文书
会计职业生涯规划范文
2014/01/04 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
MySQL连接控制插件介绍
2021/09/25 MySQL
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
python获取带有返回值的多线程
2022/05/02 Python