1.因为项目中有三处地方需要上传,所以html中存在三处地方。身份证正反面为上传一张,发票限制上传9张。

<div class="action1">
<!--展示图片页面-->
<button id="InputFile" class="InputFile image-item cardpica"></button>
</div> <div class="action2">
<!--展示图片页面-->
<button id="InputFile2" class="InputFile2 image-item cardpicb"></button>
</div> <div class="action3">
<!--展示图片页面-->
<div class="cropped cropped3">
</div> <button id="InputFile3" class="InputFile3 image-item cardpic"></button> </div>

2.js部分,推荐一个网址,文档有的比官方详细:http://www.dybc.com.cn/doc/mui_h5plus


//上传图片
var btn=document.getElementById('InputFile');
var btn1=document.getElementById('InputFile2');
var btn2=document.getElementById('InputFile3');
var type;//此处定义type是为了区分是从第几个区域上传的 btn.addEventListener('tap',function() {
type=0;
var btnArray = [{title: "照相机"}, {title: "相册"}]; //选择按钮 1 2 3
plus.nativeUI.actionSheet({
title: "请选择",
cancel: "取消", //
buttons: btnArray
},
function(e) {
var index = e.index;
/*alert(index);*/
switch(index) {
case 1:
//写自己的逻辑
camera();
break;
case 2:
album();
break;
}
}); }) btn1.addEventListener('tap',function() {
type=1;
var btnArray = [{title: "照相机"}, {title: "相册"}]; //选择按钮 1 2 3
plus.nativeUI.actionSheet({
title: "请选择",
cancel: "取消", //
buttons: btnArray
},
function(e) {
var index = e.index;
/*alert(index);*/
switch(index) {
case 1:
//写自己的逻辑
camera();
break;
case 2:
album();
break;
}
}); }) btn2.addEventListener('tap',function() {
type=2;
var btnArray = [{title: "照相机"}, {title: "相册"}]; //选择按钮 1 2 3
plus.nativeUI.actionSheet({
title: "请选择",
cancel: "取消", //
buttons: btnArray
},
function(e) {
var index = e.index;
/*alert(index);*/
switch(index) {
case 1:
//写自己的逻辑
camera();
break;
case 2:
album();
break;
}
}); }) function camera(){
var cmr = plus.camera.getCamera();
cmr.captureImage( function ( p ) {
//成功
plus.io.resolveLocalFileSystemURL( p, function ( entry ) { var img_name = entry.name;//获得图片名称
var path = entry.toLocalURL();//获得图片路径 upload_img(path); }, function ( e ) {
console.log( "读取拍照文件错误:"+e.message );
} ); }, function ( e ) {
console.log( "失败:"+e.message );
}, {filename:'_doc/camera/',index:1} ); // “_doc/camera/“ 为保存文件名 } function album(){
plus.gallery.pick( function(path){ /* img.src = path;*///获得图片路径
upload_img(path); }, function ( e ) {
console.log( "取消选择图片" );
}, {filter:"image"} ); } //初始上传地址
var server=config.api + '/public/common/upload';
var files=[]; //图片存放的数组 可以上传一个,或者多个图片 //上传图片
function upload_img(p){
//又初始化了一下文件数组 为了支持我的单个上传,如果你要一次上传多个,就不要在写这一行了
//注意
files=[];
var n=p.substr(p.lastIndexOf('/')+1);
files.push({name:"file",path:p}); //开始上传
start_upload(); } //开始上传
function start_upload(){
if(files.length<=0){
plus.nativeUI.alert("没有添加上传文件!");
return;
}
//原生的转圈等待框
var wt=plus.nativeUI.showWaiting();
var task=plus.uploader.createUpload(server,
{method:"POST"},
function(t,status){ //上传完成
wt.close();
/* alert(status);*/
if(status==200){
//关闭转圈等待框
//资源
var responseText = t.responseText;
//转换成json
var json = eval('(' + responseText + ')');
//上传文件的信息
var files = json.data;
//上传成功以后的保存路径
/* alert(type);*/
if(type==0){
if($('.img1').attr('src') == "") { } else {
$('.action1').append('<div class="cropped1">' +
'<div class="image1 ">' +
'<img src="' + files + '" class="img1 image-item cardpica" id="show"/>' +
'<div class="delete1">' + "X" + '</div>' +
'</div>' +
'</div>');
$('#InputFile').hide();
}
/*图片删除*/
$('.delete1').click(function() {
$(this).parent().remove();
$(this).parent().parent().remove();
$(this).siblings().find('.delete1').remove();
$(this).remove();
$('#InputFile').show();
}); }else if(type==1){
if($('.img2').attr('src') == "") {} else {
$('.action2').append('<div class="cropped2">' +
'<div class="image2 ">' +
'<img src="' + files + '" class="img2 image-item cardpicb" id="show"/>' +
'<div class="delete2">' + "X" + '</div>' +
'</div>' +
'</div>');
$('#InputFile2').hide();
}
/*图片删除*/
$('.delete2').click(function() {
$(this).parent().remove();
$(this).parent().parent().remove();
$(this).siblings().find('.delete1').remove();
$(this).remove();
$('#InputFile2').show();
}); }else if(type==2){
var num = $(".img3").length + 1;
if(num >9) {
mui.toast('最多上传9张发票图片哦~');
} else { $('.cropped3').append('<div class="image2 mui-col-xs-6">' + '<img src="' + files + '" class="img3 image-item ">' +
'<div class="delete3">' + "X" + '</div>' +
'</div>');
$('.btn-default').hide();
$('.delete3').click(function() {
$(this).parent().remove();
$(this).parent().find('img').removeAttr("src");
})
}
} console.log(JSON.stringify(files)); //ajax 写入数据库 }else{
console.log("上传失败:"+status);
//关闭原生的转圈等待框
wt.close();
}
}); //上传需要传输到接口的数据
task.addData("data",files);
task.addData("uid",getUid());
for(var i=0;i<files.length;i++){
var f=files[i];
task.addFile(f.path,{key:f.name});
}
task.start(); } // 产生一个随机数
function getUid(){
return Math.floor(Math.random()*100000000+10000000).toString();
}

3.发票传给后台需要自己存放到数组,因为页面的有两个按键。保存和提交审核,为了防止冲突,可以全部定义变量,然后每次进入按键时间初始化,把原来存放的值清空。

    var is_submit = "";
var param = {};
var images;
var imagesPic = {};
var cardPic = {};
var carda;
var cardb;
//数据
function applydata() {
images = [];
var name = $('.name').val();
var mobile = $('.mobile').val();
var mobile_backup = $('.mobile_backup').val();
var sex = $('#sex').find("option:selected").attr('class');
var card_type = $('#card_type').find("option:selected").attr('class');
var card_number = $('.card_number').val();
carda = $('.img1').attr("src");
cardb = $('.img2').attr("src");
var province = $("#pro").find("option:selected").attr('class');
var city = $('#city').find("option:selected").attr('class');
var hospital_id = $('#hospital_id').find("option:selected").attr('class');
var department_id = $('#department_id').find("option:selected").text();
var doctor = $('.doctor').val();
var store_province = $('#store_province').find("option:selected").attr('class');
var store_city = $('#store_city').find("option:selected").attr('class');
var store_id = $('#store_id').find("option:selected").attr('class'); //发票
$('.cropped img').each(function() {
var imageUrl = {};
imageUrl.url = $(this).attr("src");
images.push(imageUrl);
});
/*imagesPic.images = images;*/
/*imagesPic = JSON.stringify(images);*/ cardPic.card_front_imgurl = carda;
cardPic.card_back_imgurl = cardb;
/*cardPic = JSON.stringify(cardPic)*/ param = {
"name": name,
"sex": sex,
"mobile": mobile,
"mobile_backup": mobile_backup, "card_type": card_type,
"card_number": card_number,
"card_pic":JSON.stringify(cardPic), "province": province,
"city": city,
"hospital_id": hospital_id,
"department_id": department_id,
"doctor": doctor, "store_province": store_province,
"store_city": store_city,
"store_id": store_id, "invoice": JSON.stringify(images),
"is_submit": is_submit,
"page": 0,
"user_id": user_id,
"process_id": "89903124080230400"
}
}

MUI上传图片之选择相册和相机上传的更多相关文章

  1. ios uiimagepickercontroller 选择相册或者拍照上传

    首先需要实现UIImagePickerControllerDelegate 代理 实现其imagePickerController 方法  这里用于选择图片或的拍照回调 //调用相机拍照 或者 图库选 ...

  2. Hbuilder mui 相册拍照图片上传

    http://www.bcty365.com/content-146-3648-1.html 使用流程 弹出actionSheet /*点击头像触发*/ document.getElementById ...

  3. mui + H5 调取摄像头和相册 实现图片上传

    最近要用MUI做项目,在研究图片上传时 ,遇到了大坑 ,网上搜集各种资料,最终写了一个demo,直接看代码.参考(http://www.cnblogs.com/richerdyoung/p/66123 ...

  4. QQ登入(5)获取空间相册,新建相册,上传图片到空间相册

    ///////////////////////////////////////////////////////////////////// 获取相册列表:必须先授权登入 1.1.  String mA ...

  5. 微信JS-SDK选择相册或拍照并上传PHP实现

    理解:微信上传接口是拍照,或者选择本地照片,上传到微信的服务器,获取到一个id,通过token与这个id获取到图片,保存到服务器即可. 效果 通过微信js接口,调用底层程序. 需要引入js文件,并进行 ...

  6. JS中调用android和ios系统手机打开相机并可选择相册功能

    编写不易,如有转载,请声明出处: 梦回河口:http://blog.csdn.net/zxc514257857/article/details/57626154 实现android手机打开相机选择相册 ...

  7. mui选择时间、选择日期

      完整代码: <header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-i ...

  8. mui+vue+photoclip做APP头像裁剪上传

    做APP由于项目需要,需要做用户头像上传的功能,头像上传包括拍照和相册选择图片进行上传,这里使用的技术是mui封装的plus,在进行图片裁剪的时候,使用的是photoclip来进行裁剪,由于个人在使用 ...

  9. 基于H5+ API手机相册图片压缩上传

    // 母函数 function App(){} /** * 图片压缩,默认同比例压缩 * @param {Object} path * pc端传入的路径可以为相对路径,但是在移动端上必须传入的路径是照 ...

随机推荐

  1. K3CLOUDJOBPROCESS每分钟重启

    1.进入服务,找到k3cloudjobprocess 2.设置每分钟重启

  2. 泛型与object

    一.泛型通俗的理解就是限制list集合里面的数据类型 比如List<int>,就限制LIST里面必须是int,这样放入其他就有报错(保证了安全),然后从 list里取元素,就不需要强制转化 ...

  3. springboot项目中配置swagger-ui

    Git官方地址:https://github.com/SpringForAll/spring-boot-starter-swagger Demo:https://github.com/dyc87112 ...

  4. 开启ucosii的移植之旅

    开启ucosii的移植之旅: 4.6.1.移植和硬件平台的关系 (1)只要是cortex-m3内核内核的soc移植差异都不大. 同内核同soc的不同开发板移植差异都不大. 不同内核的开发板移植难度大, ...

  5. DFA确定有限状态自动机

    DFA 在计算理论中,确定有限状态自动机或确定有限自动机(英语:deterministic finite automaton, DFA)是一个能实现状态转移的自动机.对于一个给定的属于该自动机的状态和 ...

  6. MySql数据库字段排序规则不一致产生的一个问题

    最近项目向MySql迁移,迁移完毕后,在获取用户权限时产生了一个异常,跟踪进去获取执行的语句如下, SELECT PermissionId FROM spysxtPermission WHERE (R ...

  7. sourceinsight问题

    1.添加.cc文件 Options-〉“Document   Options”-〉在“File   filter”   裡邊加上*.cc Project--->Add and Remove Pr ...

  8. 支付宝aar添加与友盟冲突解决

    Program type already present: com.ta.utdid2.b.a.e" 错误提示: 删掉libs中utdid的jar.

  9. 商务电话思维图(XMind für Geschäftliche Telefongespräche)

    在和德国人打交道时,经常会遇到打电话的情景,应该怎么应对呢?不用担心,记住下面这个导图,轻松搞定德语电话的常用句型. 最后,按照惯例,来张美景.人越是上了年纪,就活的越是小心.但无论外界怎么样,请保持 ...

  10. js重点--匿名函数

    推荐博客:https://www.cnblogs.com/pssp/p/5216668.html 函数是必须要有函数名的,不然没有办法找到它,使用它. 如果没有名字必须要有一个依附体,如:将这个匿名函 ...