input file 上传图片问题
html代码如下:
<input id="fileup" type="file" accept="image/*" capture="camera" >
js代码:
$('#fileup').change(function (e) {
/*var val= $('#upimg').valueOf()*/
var file = $('#fileup')[0].files[0];
//创建读取文件的对象
var reader = new FileReader();
//创建文件读取相关的变量
var imgFile;
//为文件读取成功设置事件
reader.onload = function (e) {
imgFile = e.target.result;
var index= layer.open({
type: 2
,content: '正在上传...',
shadeClose:false
});//提示正在上传
$.ajax({
url: '',
type: "POST",
data: {imgsrc: imgFile},
success: function (data) {
if(data.success==true) {
layer.close(index);//关闭提示框
$(".up img").attr("src", data.imageUrl);
}
}
});
};
这里我们会踩到一些坑:
android手机微信内置浏览器上传时,会出现change事件无效,所以在这里特别提醒下在input内要加上capture="camera";
这里我是直接获取上传图片的base64码(e.target.result),由后端处理返回数据。
大家也可以用创建dataform来提交数据:
var fd = new FormData();
fd.append("upload", 1);
fd.append("upfile", $(".fileup")[0].files[0]);
FormData包含append方法可直接调用
接下来是第三种方法:
<form action='XXXXXXXXXXXX' method='post' enctype='multipart/form-data><input type="file" accept="image/*" capture="camera"> </form>
通过原生表单提交的方式来进行上传
enctype属性规定在发送到服务器之前应该如何对表单数据进行编码,默认的编码是:”application/x-www-form-urlencoded“。对于普通数据是挺适用的,但是,对于文件,科科,就不能乱编码了,该什么就是什么,只能使用multipart/form-data作为enctype属性值。
下面是对FileReader作一个补充:
- readAsDataURL() 方法。//将文件读取为base64的格式,也就是可以当成图片的src
- result 属性 //将读取的数据保存在result里。
- progress 事件 //定时触发,来获取当前已上传文件的大小,如进度条
- loade 事件 //文件上传完成时触发
- loadend 事件 //文件上传完成时(不管成功、失败)触发
var reader = new FileReader(); //新建FileReader对象
reader.readAsDataURL(file); //读取为base64
//以下代码可以删除
reader.onloadstart = function(){
... //开始读取
};
reader.onprogress = function(e){
//这个是定时触发的事件,文件较大的时候较明显
var p = '已完成:' + Math.round(e.loaded / e.total * 100) + '%' ;//上传完成进度 };
reader.onabort = function(){
... //用作取消上传功能
};
reader.onerror = function(){
console.log('error'); //文件读取出错的时候触发
};
reader.onload = function(){
console.log('load complete'); //完成
};
input file 上传图片问题的更多相关文章
- JQuery input file 上传图片
表单元素file设置隐藏,通过其他元素打开: .imgfile为input file $(".ul").click(function () {return $(".img ...
- html5手机 input file 上传图片 调用API
<input type="file" accept="video/*;capture=camcorder"> <input type=&quo ...
- (转)html中使用表单和input file上传图片
本文转载自:http://hi.baidu.com/love_1210/item/120e452b42b2a854c38d59eb 客户端代码: <form name="form1&q ...
- input file上传图片预览,非插件
Input标签 <input type="file" name="pic" onchange="changepic(this)" mu ...
- vue <input type="file">上传图片、预览、删除
使用原生<input type="file">上传图片.预览.删除:multiple实现可上传多张 参数名 类型 说明 fileTypes Array 文件类型, 默认 ...
- 一、H5(移动端)前端使用input type=file 上传图片,调用相机和相册
一.H5(移动端)前端使用input type=file 上传图片,调用相机和相册
- HTML中上传与读取图片或文件(input file)----在路上(25)
input file相关知识简例 在此介绍的input file相关知识为: 上传照片及文件,其中包括单次上传.批量上传.删除照片.增加照片.读取图片.对上传的图片或文件的判断,比如限制图片的张数.限 ...
- 动态input file多文件上传到后台没反应的解决方法!!!
其实我也不太清除具体是什么原因,但是后面就可以了!!! 我用的是springMVC 自带的文件上传 1.首先肯定是要有springMVC上传文件的相关配置! 2.前端 这是动态input file上传 ...
- h5 input file ajax实现文件上传
<input type="file" accept="image/*" height="0" class="file_inp ...
随机推荐
- javaWeb学习总结(10)- Filter(过滤器)学习
一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有 web资源:例如Jsp, Servlet, 静 ...
- java虚拟机学习-JVM调优总结-新一代的垃圾回收算法(11)
垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限.但是他无法解决的一个问题,就是Full GC所带来的应用暂停.在一些对实时性要 ...
- (数字IC)低功耗设计入门(二)——功耗的分析
前面学习了进行低功耗的目的个功耗的构成,今天就来分享一下功耗的分析.由于是面向数字IC前端设计的学习,所以这里的功耗分析是基于DC中的power compiler工具:更精确的功耗分析可以采用PT,关 ...
- 浏览器兼容之Chrome浏览器: -webkit-text-size-adjust: none;
今天在看demo的时候css样式里面发现的 -webkit-text-size-adjust: none; 度娘以后,了解这段样式的作用是:解决Chrome浏览器里面,设置小于12px的字体大小问题. ...
- 在node.js中如何屏蔽掉favicon.ico的请求
今天准备用node做个api出来,还没入门,遇到一个小问题,特在此记录一下! 在做路由模块的时候,发现控制台每次都会多输出一条favicon.ico的请求,对于这种又占资源,看着又碍眼的玩意,强迫症完 ...
- python基础 --02
常见的数据类型 列表 在python中,列表的创建可以是由[]两个方括号组成的.在其他语言中,被称之为数组. 列表里可以存放一组值,并且系统默认的给列表里的每一个元素以索引值,方便查找和使用. 如下: ...
- CI Weekly #20 | 从持续集成的角度看 “云” 的价值
很多移动开发工程师对 fastlane 耳熟能详,最近 flow.ci 的 iOS 工作流「编译」这步已采用 fastlane gym 工具(iOS 应用打包签名自动化),进一步优化了构建打包速度.快 ...
- MySQL 开启慢查询日志
1.1 简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能. 1.2 登录数据库查看 [root@localhost lib]# ...
- poj3648
poj3648 题意 有一对新人结婚,n-1对夫妇去参加婚礼.有一个很长的座子,新娘与新郎坐在座子的两边(相反).接下来n-1对夫妇就坐,其中任何一对夫妇都不能坐在同一边,且(有一些人有奸情)这些有奸 ...
- poj3683
poj3683 题意 n对新人举行婚礼,婚礼在不同时间段但可能重叠,婚礼有开始(Si).结束(Ti).仪式举行时间(Di),问能否给出一种举行方案,使得神父能参加所有的婚礼并举行仪式. 分析 xi为真 ...