
更新时间: 2019年11月15日11:41:11作者: wangjian
本文主要介绍微信JSSDK打开相机拍照,然后将照片保存到服务器. 本文中的示例代码非常详细,对每个人的学习或工作都有一定的参考学习价值. 让我们和编辑们一起学习
打开手机,在微信端拍照,然后将图片保存到服务器. 我们需要使用微信JSSDK界面,主要用于拍照或从手机相册中选择图像界面(chooseImage)js调用或相册,上传图像界面(uploadImage)
参考:

一: 微信js的介绍
<script src="http://res2.wx.qq.com/open/js/jweixin-1.4.0.js "></script>
二: 通过config界面注入权限验证配置
wx.config(<php
echo Yii::$app->wechat->js->config([
'chooseImage',
'uploadImage',
'downloadImage'
])
>
);

三: 微信界面
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
}
});
四: 将照片上传到微信服务器界面
wx.uploadImage({
localId: localIds, // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (res) {
var serverId = res.serverId; // 返回图片的服务器端ID
},
fail: function() {
//上传图片到微信服务器失败
return false;
}
});

五: 将图片从微信服务器下载到本地服务器
前端:
//url表示php接口地址
//serverId表示图片的服务器端ID
$.post(url, {'media_id':serverId}, function(data) {
if (data.type == 'success') {
//上传成功
} else {
//上传失败
}
});
php(界面)

public function actionUpload()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$mediaId = $request->post('media_id');
if (empty($mediaId)) {
return [
'type' => 'error',
'message' => '参数错误!'
];
}
//临时素材
$temporary = Yii::$app->wechat->material_temporary;
//创建服务器目录
$path = 'wechat/' . date('Ymd',time()) . '/';
$fullPath = Yii::getAlias('@webroot') . '/' . $path;
if (!is_dir($fullPath)) {
FileHelper::createDirectory($fullPath);
}
//设置图片名称
$fileName = Yii::$app->getSecurity()->generateRandomString() . '-' . date('His',time());
//将服务器端的临时素材下载到本地服务器
$temporary->download($mediaId, $fullPath, $fileName);
return [
'type' => 'success',
'url' => $path . $fileName . '.jpg',
];
}
前端代码集成
<!--引入微信js-->
<script src="http://res2.wx.qq.com/open/js/jweixin-1.4.0.js "></script>
<button class="btn">点击</button>
<img id="imgTarget" src="" alt="">
<php
$url = \yii\helpers\Url::to(['/wechat/upload']);
$wxConfig = Yii::$app->wechat->js->config([
'chooseImage',
'uploadImage',
'downloadImage'
]);
$JS = <<<JS
//注入权限验证配置
wx.config(
{$wxConfig}
);
$('.btn').click(function () {
wx.ready(function(){
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
uploadImage(localIds.toString())
}
});
})
});
/**
* 上传图片到微信服务器
*/
function uploadImage(localIds) {
wx.uploadImage({
localId: localIds, // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (res) {
var serverId = res.serverId; // 返回图片的服务器端ID
downloadImage(serverId.toString());
},
fail: function() {
//上传图片到微信服务器失败
alert('上传图片到微信服务器失败');
return false;
}
});
}
/**
* 将微信服务端的图片下载到本地服务器
*/
function downloadImage(serverId) {
//url表示php接口地址
//serverId表示图片的服务器端ID
$.post(url, {'media_id':serverId}, function(data) {
if (data.type == 'success') {
//上传成功
alert(data.url);
} else {
//上传失败
alert(data.message)
}
});
}
JS;
$this->registerJs($JS);
>
根据上面的代码,微信终端可以打开相机拍照,然后将照片保存到服务器功能
以上是本文的全部内容js调用或相册,希望对大家的学习有所帮助,并希望每个人都支持此脚本.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-210864-1.html
差点没认出来
先是中国进入美国十二海里