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实现原生ajax的几种方法介绍
Sep 21 Javascript
深入解析JavaScript中的变量作用域
Dec 06 Javascript
js中传递特殊字符(+,&amp;)的方法
Jan 16 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
Nov 04 Javascript
jQuery插件支持同一页面被多次调用
Feb 14 Javascript
js跨域资源共享 基础篇
Jul 02 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
ztree实现左边动态生成树右边为内容详情功能
Nov 03 Javascript
微信小程序日期时间选择器使用方法
Feb 01 Javascript
JS改变页面颜色源码分享
Feb 24 Javascript
详解Angular操作cookies方法
Jun 01 Javascript
vue项目打包之开发环境和部署环境的实现
Apr 23 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
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
2015/07/15 PHP
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
2018/05/23 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
执行iframe中的javascript方法
2008/10/07 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
2017/01/05 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
python中的装饰器详解
2015/04/13 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
浅谈Python 递归算法指归
2019/08/22 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
百度软件工程师职位
2013/02/14 面试题
2014元旦晚会策划方案
2014/02/19 职场文书
历史专业大学生职业生涯规划书
2014/03/13 职场文书
安全生产标语
2014/06/06 职场文书
党政领导班子群众路线对照检查材料思想汇报
2014/09/27 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS