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 相关文章推荐
基于jQuery的图片左右无缝滚动插件
May 23 Javascript
javascript复制粘贴与clipboardData的使用
Oct 16 Javascript
实例讲解jquery中mouseleave和mouseout的区别
Feb 17 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
Mar 29 Javascript
关于JS中的方法是否加括号的问题
Jul 27 Javascript
JQuery validate 验证一个单独的表单元素实例
Feb 17 Javascript
AngularJS封装$http.post()实例详解
May 06 Javascript
设置cookie指定时间失效(实例代码)
May 28 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
Jan 04 Javascript
详解swiper在vue中的应用(以3.0为例)
Sep 20 Javascript
详解js中的几种常用设计模式
Jul 16 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
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
python字符串编码识别模块chardet简单应用
2015/06/15 Python
详解python中字典的循环遍历的两种方式
2017/02/07 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
浅析python继承与多重继承
2018/09/13 Python
pandas重新生成索引的方法
2018/11/06 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
pytorch forward两个参数实例
2020/01/17 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
Viking比利时:购买办公用品
2019/10/30 全球购物
GWebs公司笔试题
2012/05/04 面试题
建筑工地质量标语
2014/06/12 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
python 安全地删除列表元素的方法
2022/03/16 Python
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers