微信小程序多图上传,微信小程序图片上传
//数据
data: {
imgurl:[], imgname:[], }, //上传方法
//<view class="pic_add" bindtap='imgupload'><image src="/images/add.png" mode="widthFix"></image></view>
imgupload:function () {
var that = this;
var count = 6 - parseInt((that.data.imgurl).length);
if( count == false )
{
wx.showToast({
title: '最多上传6张', duration: 1500
})
return false;
}
wx.chooseImage({
count: 1, sizeType: ['compressed'],
success: function (res) {
var tempFilePaths = res.tempFilePaths;
var i = 0; //第几个
var length = res.tempFilePaths.length; //总共个数
var successUp = 0; //成功个数
var failUp = 0; //失败个数
that.uploadImg(tempFilePaths, successUp, failUp, i, length);
}
})
}, uploadImg: function (tempFilePaths, length) {
var that = this;
var token = wx.getStorageSync('token');
wx.uploadFile({
url: _data.get_api_imgupload, //仅为示例,非真实的接口地址
filePath: tempFilePaths[i], name: 'file', header: {
'content-type': 'multipart/form-data', 'Authorization': token
}, success: function (res) {
//console.log(res);
var srcArr = that.data.imgurl;
srcArr.push(data.data.src);
var imgname = that.data.imgname;
imgname.push(data.data.name);
that.setData({
imgurl: srcArr, imgname: imgname
});
}, complete: () => {
i++;
if (i == length) {
return;
} else { //递归调用uploadDIY函数
if (!that.data.isuploaderror) {
this.uploadImg(tempFilePaths, length);
}
}
}
})
},
//删除
//<view class="pic_dle" data-id="{{key}}" data-name="{{imgname[key]}}" bindtap='remImg'><image src="/images/dle.png" mode="widthFix"></image></view>
remImg:function (e) {
var that = this;
var dataset = e.currentTarget.dataset;
var Index = dataset.id;
var name = dataset.name;
//通过`index`识别要删除第几条数据,第二个数据为要删除的项目数量,通常为1
that.data.imgurl.splice(Index, 1);
that.data.imgname.splice(Index, 1);
//渲染数据
that.setData({
imgurl: that.data.imgurl, imgname: that.data.imgname
});
var url = _data.get_api_imgdel;
var data = {'name': name};
_httpHelper.httpPost(url, data, function (res) {});
},
/**
* 上传图片到本地临时目录
*/
public function uploadImgToTemp( Request $request )
{
if( $request->file('file') == false )
{
responseData(\StatusCode::ERROR,'文件不存在');
}
try {
$res = $request->file('file')->store('temp', 'temp');
$name = explode('/',$res)[1];
$obj = new \stdClass();
$obj->src = "http://".$_SERVER['HTTP_HOST'].'/temp/'.$name;
$obj->name = $name;
responseData(\StatusCode::SUCCESS,'上传成功',$obj);
} catch (Exception $e)
{
responseData(\StatusCode::ERROR,'上传失败');
}
}
/**
* @param string $status
* @param string $messages
* @param string $data
* @param string $errorparam
*
*/
function responseData( $status="", $messages="", $data="", $errorparam="" )
{
$res["status"] = $status;//请求结果的状态
$res["messages"] = $messages;//请求结果的文字描述
$res["data"] = $data;//返回的数据结果
if( $errorparam )
{
$res["errorparam"] = $errorparam; //错误参数对应提示
}
echo json_encode($res);
die;
}