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 相关文章推荐
深入理解JavaScript系列(12) 变量对象(Variable Object)
Jan 16 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
Aug 14 Javascript
HTML上传控件取消选择
Mar 06 Javascript
Jquery插件编写简明教程
Mar 25 Javascript
js子页面获取父页面数据示例
May 15 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
Mar 04 Javascript
Bootstrap每天必学之折叠
Apr 12 Javascript
EasyUI Pagination 分页的两种做法小结
Jul 09 Javascript
js实现类bootstrap模态框动画
Feb 07 Javascript
js实现股票实时刷新数据案例
May 14 Javascript
javascript中call()、apply()的区别
Mar 21 Javascript
vue路由传参页面刷新参数丢失问题解决方案
Oct 08 Javascript
浅探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
smarty表格换行实例
2014/12/15 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
可实现多表单提交的javascript函数
2007/08/01 Javascript
javascript web对话框与弹出窗口
2009/02/22 Javascript
jQuery的实现原理的模拟代码 -5 Ajax
2010/08/07 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
2018/11/28 Javascript
vue使用代理解决请求跨域问题详解
2019/07/24 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
python之生成多层json结构的实现
2020/02/27 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
离职保密承诺书
2014/05/28 职场文书
学生干部培训方案
2014/06/12 职场文书
会议室标语
2014/06/21 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
消费者理赔投诉书
2015/07/02 职场文书
Python实现为PDF去除水印的示例代码
2022/04/03 Python