图片异步上传,使用ajax上传图片

1、使用插件plupload

2、实现效果

 

3、HTML

1 <li>
2     <div class="default" data-disabled="false"><img src="" class="upImage"></div>
3     <input id="fileStorge2" value="" type="hidden" class="fileStorge">
4     <input type="file" name="" value="" style="display: none;" class="fileUp" id="fileUp2" data-id="2">
5 </li>

 

 4、JS

//点击上传图片
$('body').off('click','.default');
$('body').on('click','.default', function () {var disabled = $(this).attr('data-disabled');if (disabled === "true") {return false;}else{$(this).siblings('.fileUp').trigger('click');}});//图片上传初始化函数
function initImage(){$('.fileUp').each(function(index,ele){var id = $(this).attr('id'),indexNum = $(this).attr('data-id');initUpload(id, indexNum);});}//图片上传
function initUpload(eleID, index) {var uploader = new plupload.Uploader({ //实例化一个plupload上传对象
        browse_button : document.getElementById(eleID),url : 'upload.html', //服务器端的上传页面地址flash_swf_url : 'Moxie.swf',silverlight_xap_url : 'Moxie.xap',multi_selection: false,//是否可以在文件浏览对话框中选择多个文件
        filters: {mime_types : [ //只允许上传图片文件{ title : "图片文件", extensions : "jpg,gif,png" }]}});uploader.init(); //初始化//绑定文件添加进队列事件uploader.bind('FilesAdded',function(uploader,files){for(var i = 0, len = files.length; i<len; i++){!function(i){previewImage(files[i],function(imgsrc){$('#'+eleID+'').siblings('.default').find('img').attr('src',imgsrc).show();$('#fileStorge'+index).val(encodeURIComponent(imgsrc));});}(i);}});}//图片上传预览
function previewImage(file,callback){ if(file.type=='image/gif'){ //gif使用FileReader进行预览,因为mOxie.Image只支持jpg和pngvar fr = new mOxie.FileReader();fr.onload = function(){callback(fr.result);}fr.readAsDataURL(file.getSource());}else{var preloader = new mOxie.Image();preloader.onload = function() {preloader.downsize( 300, 300 );//先压缩一下要预览的图片,宽300,高300var imgsrc = preloader.type=='image/jpeg' ? preloader.getAsDataURL('image/jpeg',80) : preloader.getAsDataURL(); //得到图片src,实质为一个base64编码的数据callback && callback(imgsrc); //callback传入的参数为预览图片的url
        };preloader.load( file.getSource() );}   
}

 

转载于:https://www.cnblogs.com/zhanghuiyun/p/6709596.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android BitmapShader 实战 实现圆形、圆角图片

转载请标明出处&#xff1a;http://blog.csdn.net/lmj623565791/article/details/41967509&#xff0c;本文出自&#xff1a;【张鸿洋的博客】 1、概述 记得初学那会写过一篇博客Android 完美实现图片圆角和圆形&#xff08;对实现进行分析&#xff09;&#xff0c;主要是个自定…

前端学习(2387):组件库使用说明

main.js import Vue from vue import App from ./App.vue import router from ./router import ./styles/index.less // 加载组件库 import ElementUI from element-ui // 加载样式 import element-ui/lib/theme-chalk/index.css Vue.config.productionTip false // 注册组件…

深度理解 Virtual DOM

目录&#xff1a; 1 前言 2 技术发展史 3 Virtual DOM 算法 4 Virtual DOM 实现 5 Virtual DOM 树的差异&#xff08;Diff算法&#xff09; 6 结语 7 参考链接 1 前言 我会尽量把 Virtual DOM 应用场景、实现思路、算法讲述清楚&#xff0c;希望大家阅读后&#xff0c;能让你 深…

前端学习(2388):封装请求模块

request.js // axios import axios from axios// 创建实例 通过实例发送请求 const request axios.create({// 请求的基本路径baseURL: http://ttapi.research.itcast.cn/ }) // 导出 export default request//请求拦截器//响应烂机器/* import request from request.js requ…

oracle_数据库对象

转载于:https://www.cnblogs.com/jycjy/p/6728649.html

前端学习(2392):关于路径中的@

import Vue from vue import VueRouter from vue-router // 表示src路径的别名 好处就是它不受当前文件路径影响 import Login from /views/login/index Vue.use(VueRouter)// 路由配置表 const routes [{path: /login,name: login,component: Login }] const router new Vue…

前端学习(2398):回顾

# 一、项目初始化## 使用 Vue CLI 创建项目> 注意&#xff1a;不要使用 Git Bash 执行项目创建操作&#xff0c;使用 cmd 或者 powershell 之类的工具。> 如果你还没有安装 VueCLI&#xff0c;或者版本低于 4&#xff0c;请执行下面的命令安装或是升级&#xff1a; >…

前端学习(2399):关于编辑代码编辑器

代码段使用 可以对对应的编辑器去设置代码段

linux(ubuntu)给vmware中的windows虚拟机共享磁盘

设置vm——options——shared folders&#xff1a; 注意&#xff1a;共享的磁盘不能进行目录监听&#xff0c;比如微信小程序开发工具就无法打开这里面的项目。

MATLAB入门学习(三)

我们再来看看矩阵常用的函数&#xff0c;除了上一篇提到的inv还有以下常见命令&#xff1a; det 计算方阵行列式 eig 计算特征值 trace 计算矩阵的迹 norm 计算矩阵的范数或模 orth 正交化 poly 求特征多项式 lu LU分解 【看到这些突然觉得我线性代数没学好(ノへ&#xffe3;、…