在App端上传图片,后端接收图片
第一步,uni.chooseImage选择图片
var data = {
app_type:app_type,
app_type_name:app_type_name
}
uni.chooseImage({
count:1,
sizeType:['compressed'],
sourceType:['album','camera'],
success: async function(res){
const tempFilePaths = res.tempFilePaths;
var _data = data;
var imgs = [];
for (var i = 0;i < tempFilePaths.length;i++) {
var path = await _self.upload_file_server(tempFilePaths[i],_data,url);
imgs.push(path);
}
typeof callback == 'function' && callback(imgs);
}
})
第二步,使用uni.uploadFile上传图片
uni.uploadFile({
url:“你的接口地址”,
filePath:tempFilePath,
name:"image",
formData:data,
success:function(res){
var result = res.data;
var data = JSON.parse(result);
if(data.code == 1){
uni.showToast({
title:data.msg,
icon:"success"
})
this.header_url = data.path;
}else{
uni.showToast({
title:data.msg,
icon:"error"
})
return ;
}
}
})
第三步,后端处理图片
//上传图片
public function uploadFile(){
header("Access-Control-Allow-Origin:*");
header("Access-Control-Allow-Methods:GET, POST, OPTIONS, DELETE");
header("Access-Control-Allow-Headers:DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, Accept-Language, Origin, Accept-Encoding");
header('Access-Control-Allow-Headers: content-type,token');
$request = Request::instance();
$data = $request->post();
$file = request()->file('image');
// 移动到框架应用根目录/public/uploads/ 目录下
if($file){
$info = $file->move(ROOT_PATH . 'public' . DS . 'upload');
if($info){
// 成功上传后 获取上传信息
$path = "你的域名" . 'public' . DS . 'upload' . DS . $info->getSaveName();
return json(['code'=>1,'msg'=>'上传图片成功','path'=>$path]);
}else{
// 上传失败获取错误信息
return json(['code'=>-1,'msg'=>'上传图片失败']);
}
}
}
整个流程完整