html5+javascript实现简单上传的注意细节


Posted in Javascript onApril 18, 2016

简单记录下今早做H5上传中一些代码还有坑

一、展示

因为前端上传文件是必须通过form表单的,不能使用ajax,这样的话一个移动页面放入一个type为file的input真心不怎么好看,如下图,很挫有没有

html5+javascript实现简单上传的注意细节

解决办法找了下,PC上有些是把这个input换成flash,采用jquery的工具库比如uploadify来做,但是移动端大部分浏览器是不支持flash的。所以最后采用的办法还是用form表单的形式,只是把这个form和input的透明度设置为0,让它们和准备显示的内容同时在一个div中,显示的内容可以做成自己想要的样子。代码如下:

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
  <title></title>
  <style>
   div{width: 100%;}
   .logo img{display:block; margin:0 auto;}
   .upload{position: relative;width: 80px;height: 18px;line-height: 18px;background: #2fc7c9;text-align: center;
     color: #FFF;padding: 0px 5px;-webkit-border-radius: 2px;border-radius: 2px;
     margin: 0 auto;
     }
   .upload form{width:100%;position:absolute; left:0; top:0;opacity:0; filter:alpha(opacity=0);}
   .upload form input{width: 100%;}
  </style>
 </head>
 <body>
  <div class="logo">
   <img src="img/1.jpg" />
  </div>
  <div class="upload">
   <p>上传图片</p>
   <form>
    <input type="file" />
   </form>
  </div>
 </body>
</html>

html5+javascript实现简单上传的注意细节

样子如图,这样展现就在“上传图片”这个p标签中,点击它就有选择file的效果

二、JS代码

我这边写的蛮简单的,只是用了下h5上传的的基本功能

html代码如下,action为要请求的路径,我这边做的是当文件发生改变时就上传修改头像,input标签的name属性不能省去,具体跟后端接口有关

<form id="uploadForm" enctype="multipart/form-data" method="post" action="XXXXXX">
  <input type="file" name="imageFile" id="imageFile" onchange="fileSelected()" />
</form>
var iMaxFilesize = 2097152; //2M
window.fileSelected = function() {
 var oFile = document.getElementById('imageFile').files[0]; //读取文件
 var rFilter = /^(image\/bmp|image\/gif|image\/jpeg|image\/png|image\/tiff)$/i;
 if (!rFilter.test(oFile.type)) {
  alert("文件格式必须为图片");
  return;
 }
 if (oFile.size > iMaxFilesize) {
  alert("图片大小不能超过2M");
  return;
 }
 var vFD = new FormData(document.getElementById('uploadForm')), //建立请求和数据
  oXHR = new XMLHttpRequest();
 oXHR.addEventListener('load', function(resUpload) {
  //成功
 }, false);
 oXHR.addEventListener('error', function() {
  //失败
 }, false);
 oXHR.addEventListener('abort', function() {
  //上传中断
 }, false);
 oXHR.open('POST', actionUrl);
 oXHR.send(vFD);
};

细节决定成败,所以做任何事情都要认真对待。

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
一段实时更新的时间代码
Jul 07 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
Jun 27 Javascript
javascript将浮点数转换成整数的三个方法
Jun 23 Javascript
Js调用Java方法并互相传参的简单实例
Aug 11 Javascript
JS访问DOM节点方法详解
Nov 29 Javascript
JavaScript闭包_动力节点Java学院整理
Jun 27 Javascript
详解Angular4 路由设置相关
Aug 26 Javascript
基于vue.js路由参数的实例讲解——简单易懂
Sep 07 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
Mar 09 Javascript
分享一个vue项目“脚手架”项目的实现步骤
May 26 Javascript
vue+vant 上传图片需要注意的地方
Jan 03 Vue.js
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
jQuery的内容过滤选择器学习教程
Apr 18 #Javascript
原生JS和jQuery版实现文件上传功能
Apr 18 #Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
Apr 18 #Javascript
jQuery 如何给Carousel插件添加新的功能
Apr 18 #Javascript
AngularJS入门教程之AngularJS模型
Apr 18 #Javascript
AngularJS入门教程之AngularJS指令
Apr 18 #Javascript
AngularJS入门教程之AngularJS表达式
Apr 18 #Javascript
You might like
用PHP连接Oracle for NT 远程数据库
2006/10/09 PHP
PHP 的几个配置文件函数
2006/12/21 PHP
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
python——全排列数的生成方式
2020/02/26 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
python实现定时发送邮件
2020/12/23 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
英国床垫在线:Mattress Online
2016/12/07 全球购物
HR喜欢的自荐信格式
2013/10/08 职场文书
经济管理毕业生求职信
2014/03/15 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
整脏治乱工作简报
2015/07/21 职场文书