上传图片的功能是极为常用的,之前做过一个移动端上传文件的功能(基于jquery的),总结梳理一下。

html

<div class="uploadPic clearBox">
<ul>
<li>
<a href="javascript:void(0)" class="add001"><i class="iconfont"></i></a>
<div class="moxie-shim moxie-shim-html5 upImgBox">
<a href="javascript:void(0)" class="del002 iconfont delImg" style="display:none"><span></span></a>
<input id="fileUpload0" type="file" accept="image/png,image/gif,image/jpeg,image/bmp">
</div>
</li>
</ul>
<div>

js

$('#fileUpload0').change(function() {
uploadImg(this);
});
function uploadImg(element){
var file = element.files[0];
var $elemt=$(element);
var $parent = $elemt.parent();
var imgFileSize = file.size;
var loadingImgSrc='/images/global/loading.gif';
if(imgFileSize > 10*1024*1024) {
alert(ci18n.imgTooLarge);
} else {
var uploadComplete=function(evt){
var resJson=JSON.parse(evt.target.responseText);
if(resJson.fileurl){
$parent.find('img').attr('src',resJson.fileurl);
uploadImgUrls['a'+$elemt.parent().parent().index()]=resJson.fileurl;
$parent.find('.delImg').show();
$parent.parent('li').next().show();
}
};
var uploadFailed=function(evt){
alert('Net error.');
};
var fd = new FormData();
fd.append('upfile',file);
var xhr = new XMLHttpRequest();
xhr.addEventListener('load', uploadComplete, false);
xhr.addEventListener('error', uploadFailed, false);
xhr.open('POST', '/activity/group-upload');
$parent.append('<img src="'+loadingImgSrc+'">');
xhr.send(fd);
}
element.value = '';
}
$('.delImg').click(function() {
var $self=$(this);
var $parent = $self.parent();
delete uploadImgUrls['a'+$self.parent().parent().index()];
$parent.find('img').remove('');
$self.hide();
$parent.parent('li').next().hide();
});

效果:

点击“+”后会拉起选图片控件,选择之后会显示loading状态,上传成功之后,获取到图片地址之后,框内会显示上传的图片。

主要用了FromData来实现图片上传,并对于图片大小做了校验。

HTML5移动端图片上传模块的更多相关文章

  1. LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android

    LocalResizeIMG前端HTML5本地压缩图片上传,兼容移动设备IOS,android jincon 发表于 2015-02-26 18:31:01 发表在: php开发 localresiz ...

  2. 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传

    现在科技太发达,移动设备像素越来越高,随便一张照片2M+,但是要做移动端图片上传和pc上略有不同,移动端你不能去限制图片大小,让用户先处理图片再上传,这样不现实.所以理解的解决方案就是在上传先进行图片 ...

  3. angularJS+Ionic移动端图片上传的解决办法

    前端开发中经常会碰到图片上传的问题,网上的解决办法很多,可是有些图片上传的插件会有一些附属的插件,因此因为一个图片上传的问题可能额需要引入其他插件到项目中,久而久之项目会不伦不类,有时候插件之间也会有 ...

  4. 基于html5的多图片上传,预览

    基于html5的多图片上传 本文是建立在张鑫旭大神的多文图片传的基础之上. 首先先放出来大神多图片上传的博客地址:http://www.zhangxinxu.com/wordpress/2011/09 ...

  5. Js 之移动端图片上传插件mbUploadify

    一.下载 https://pan.baidu.com/s/1NEL4tkHoK4ydqdMi_hgWcw 提取码:vx7e 二.Demo示例 <div class="weui_uplo ...

  6. 用html5文件api实现移动端图片上传&预览效果

    想要用h5在移动端实现图片上传&预览效果,首先要了解html5的文件api相关知识(所有api只列举本功能所需): 1.Blob对象  Blob表示原始二进制数据,Html5的file对象就继 ...

  7. vue+axios实现移动端图片上传

    在利用vue做一些H5页面时,或多或少会遇到有图片上传的操作,主要是运用html5里面的input[type=file]来实现,传递到后端的数据是以二进制的格式传递,所以上传图片的请求与普通的请求稍微 ...

  8. HTML5 FileReader实现图片上传前预览

    如果你的浏览器支持Html5的FileReader的话,实现图片上传前进行预览是一件非常容易之事情. 在控制器,创建一个视图Action: jQuery代码: 实时演示一下: 下面内容于2014-11 ...

  9. vue移动端图片上传压缩

    上传压缩方法 import {api} from '../../api/api.js'; import axios from 'axios'; export function imgPreview ( ...

随机推荐

  1. OS实验报告——作业调度模拟程序

    一.目的和要求 1. 实验目的 (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 2.实验要求 用高级语言编写一个或多个作业调度的模拟程序. 单道批处理系统的作业调度程序.作业一投入运行, ...

  2. 帝国时代II 高清版 steam 4.4 字体替换 微软雅黑

    其实默认的中文字体算是中规中矩吧,但是我并不喜欢 从昨天开始就想着换 于是我就开始搜索帝国时代2的游戏目录的资源,马上就锁定到了\Steam\steamapps\common\Age2HD\resou ...

  3. Sublime Text 添加eclipse快捷键

    [ // editor配置 { "keys": ["ctrl+v"], "command": "paste_and_indent& ...

  4. JSTL中fmt标签详解

    一:JSTL格式化标签又称为I18N标签库,主要用来编写国际化的WEB应用,使用此功能可以对一个特定的语言请求做出合适的处理. 例如:中国内地用户将显示简体中文,台湾地区则显示繁体中文,使用I18N格 ...

  5. 【SharePoint学习笔记】第4章 SharePoint UI 定制

    第4章 SharePoint UI 定制   SharePoint 与 ASP.NET     好的​Asp.Net人员很快就能成为好的SharePoint开发人员     Web应用程序    Mi ...

  6. ping脚本

    #!/bin/bash for x in{100..200} ####区间为192.168.100.100-192.168.100.200 do x=$(($x-100)) if fping -c 1 ...

  7. 设置XtraForm标题居中

    public class CustomFormPainter : FormPainter { public CustomFormPainter(Control owner, DevExpress.Sk ...

  8. stl::map之const函数访问

    如何在const成员数中访问stl::map呢?例如如下代码: string ConfigFileManager::MapQueryItem(const string& name) const ...

  9. [Spring] - Quartz定时任务 - Annotation

    Spring + Quartz可以使用annoation方式: 1.AppJob类: package com.my.quartz.testquartz1; import org.springframe ...

  10. [2016.01.18]文本替换专家 v5.3

    文本替换专家,界面简洁易用,功能强大实用.支持大小写匹配,支持多级目录.多行文本.多种文件格式的同时批量查找和批量替换.智能准确的区分ANSI.UTF-8(包括无BOM的UTF-8).Unicode. ...