HTML5 开发APP(打开相册以及图片上传)

我们开发app,常常会遇到让用户上传文件的功能。比如让用户上传头像。我公司的业务要求是让用户上传支付宝收款二维码,来实现用户提现的功能。想要调用相册要靠HTML Plus来实现。先上效果图

基本功能是点击按钮就上传图片,然后获取到图片在服务器上的路径。

首先我们要打开相册,使用gallery模块管理系统相册来打开相册

mui(‘#shangchuan‘)[0].addEventListener(‘tap‘,function(){
chooseImg();
})
function chooseImg(){
plus.gallery.pick(

//打开成功的回调函数
function(paths){

},

//打开失败的回调函数
function(e){mui.toast(e.Message);},

//filter文件类型,gallery下的pick 是可以选择视频的。maximum是选择的个数
{filter:"image",system:false,multiple:true,maximum:3}
)
}

现在我们已经可以打开相册了,成功了第一步。接下来就是上传图片了。上传图片的代码在打开成功的回调函数中来执行

function chooseImg(){
plus.gallery.pick(
function(paths){

//嗯,你要找的就是这+++++
plus.nativeUI.showWaiting();
var task = plus.uploader.createUpload(

//你要上传的后台文件地址,我后面会给一个php 源码的
‘http://www.************8y/upload.php‘,
{ method:"POST"},
function (t,status){
plus.nativeUI.closeWaiting();

console.log(t.responseText);

//t.responseText里会返回数据如下

//{"uper0":{"name":"uper0","url":"S7b3264117722a8a16882e41fe6dd089.jpg","type":"image\/jpeg","size":31499}}

//看到url了吧。可以找到这张图片上传后的路径了,下面可以根据自己功能写自己的代码了。
mui.toast(‘上传成功‘);
}
);
for(i in paths.files){
task.addFile(paths.files[i],{key:‘uper‘+i,‘name‘:paths.files[i].substr(paths.files[i].lastIndexOf(‘/‘))});
}
task.start();
},
function(e){mui.toast(e.Message);},
{filter:"image",system:false,multiple:true,maximum:3}
)
}

附加PHP代码:

<?php
if ($_SERVER[‘REQUEST_METHOD‘] == ‘POST‘) {
$fs=array();
foreach ( $_FILES as $name=>$file ) {
if(move_uploaded_file($file[‘tmp_name‘],$file[‘name‘])){
$fs[$name]=array(‘name‘=>$name,‘url‘=>$file[‘name‘],‘type‘=>$file[‘type‘],‘size‘=>$file[‘size‘]);
}else{
$fs[$name]=array(‘name‘=>$name,‘url‘=>‘error‘,‘type‘=>$file[‘type‘],‘size‘=>$file[‘size‘]);
}
}
echo json_encode($fs);
}else{
echo "{‘error‘:‘Unsupport GET request!‘}";
}
?>

ok.上传图片的功能这样就完成了。

时间: 2024-08-04 01:15:21

HTML5 开发APP(打开相册以及图片上传)的相关文章

HTML5 Plus 拍照或者相册选择图片上传

利用HTML Plus的Camera.GalleryIO.Storage和Uploader来实现手机APP拍照或者从相册选择图片上传.Camera模块管理设备的摄像头,可用于拍照.摄像操作,通过plus.camera获取摄像头管理对象.Gallery模块管理系统相册,支持从相册中选择图片或视频文件.保存图片或视频文件到相册等功能.通过plus.gallery获取相册管理对象.IO模块管理本地文件系统,用于对文件系统的目录浏览.文件的读取.文件的写入等操作.通过plus.io可获取文件系统管理对象

vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理

一.前言 三年.net开发转前端已经四个月了,前端主要用webpack+vue,由于后端转过来的,前端不够系统,希望分享下开发心得与园友一起学习. 图片的上传之前都是用的插件(ajaxupload),或者传统上传图片的方式,各有利弊:插件的问题是依赖jq并且会使系统比较臃肿,还有传统的web开发模式 前后端偶尔在一起及对用户体验要求低,现在公司采用webpack+vue+restfullApi开发模式 前后端完全分离,遵从高内聚,低偶尔的原则,开发人员各司其职,一则提升开发效率(从长期来看,短期

【HTML5+MVC4】XhEditor网页编辑器图片上传

1.定义模板RichText.cshtml 文件路径:Views/Shared/EditorTemplates/ <textarea id="@ViewData.ModelMetadata.PropertyName" name="@ViewData.ModelMetadata.PropertyName" rows="30" cols="80" style="width: 96%">@Model&

Hbuilder mui 相册拍照图片上传

http://www.bcty365.com/content-146-3648-1.html 使用流程 弹出actionSheet /*点击头像触发*/ document.getElementById('headImage').addEventListener('tap', function() { if (mui.os.plus) { var a = [{ title: "拍照" }, { title: "从手机相册选择" }]; plus.nativeUI.ac

mui开发app之cropper裁剪后上传头像的实现

在大多数app项目中,都需要对用户头像的上传,之前做web开发的时候,我主要是通过input type=file的标签实现的,上传后,使用php对图片进行裁剪,这种方式比较传统简单. 此次app开发中我需要做到用户选择本地相册或者进行拍照,对照片进行裁剪,最后更新本地头像和服务器端的图片 我将要结合mui,cropper,jquery开发 实现思路: 1.用户点击头像,打开actionsheet 2.选择图片或者拍照后返回的图片绝对地址传入单独的裁剪页面,跳转到裁剪页面 3.裁剪页面裁剪后选择确

Ionic3学习笔记(十二)拍照上传图片以及从相册选择图片上传

本文为原创文章,转载请标明出处 目录 安装插件 导入 app.module.ts 创建 provider 更多 效果图 1. 安装插件 终端运行: ionic cordova plugin add cordova-plugin-camera npm install --save @ionic-native/camera ionic cordova plugin add cordova-plugin-telerik-imagepicker --variable PHOTO_LIBRARY_USAG

thinkphp开发系列-ueditor1.43修改图片上传路径

最近用的ueditor1.43感觉分厂不错,但是如何能自定义ueditor的上传路径呢 然后进入php目录 打开后参考下图修改

微信端调取相册和摄像头,实现图片上传,并上传到本地服务器

在微信公众号网页开发时,遇到了图片上传的问题,查看了微信的开发者文档,里面的资料比较全.接着我们看一下整个的流程 1.config权限配置 $.ajax({ url:'wx_getConfig', type:'get', dataType:'json', async:false, success:function(data){ var appId = data[0].appId; var timestamp = data[0].timestamp; var nonceStr = data[0].

HTML5 FileReader实现图片上传前预览

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