uniapp文件上传非常简单,由于官方已经封装好了api,因为我们可以直接调用来完成文件上传操作,具体为:
1、首先使用uni.chooseImage进行图片选择与裁剪,图片裁剪仅支持app端,通过uni.chooseImage获取到图片临时路径。
2、使用uni.uploadFile进行文件上传,获取到服务器上的图片路径。
代码:
//图片选择
uni.chooseImage({
success: (chooseImageRes) => {
//临时路径获取
const tempFilePaths = chooseImageRes.tempFilePaths;
//图片上传
uni.uploadFile({
url: '服务器接口地址', //仅为示例,非真实的接口地址
filePath: tempFilePaths[0],
name: 'file',
formData: {
'user': 'test'
},
success: (uploadFileRes) => {
//服务器图片路径获取
console.log(uploadFileRes.data);
}
});
}
});
app图片裁剪代码:
uni.chooseImage({
count: 1, //图片可选择数量,默认9
crop:{
quality:80,//图片质量,1-100,默认80
width:350,//图片裁剪宽度,单位px
height:350//图片裁剪高度,单位px
}
sourceType: ['album','camera'], //从相册与相机拍摄中进行图片获取
success: function (res) {
//获取裁剪后的图片
console.log(JSON.stringify(res.tempFilePaths));
}
});
微信小程序图片裁剪:
请使用微信小程序头像填写功能进行图片裁剪处理,头像填写功能自带图片选择与裁剪:
除这两者以外的其它平台请参考其开发文档,H5端无法使用uniapp进行图片裁剪,请改变图片的显示模式
即:
<image mode="aspectFill"><image>
此模式会自动裁剪图片,图片的更多裁剪模式请参考uni官方开放文档(mode有效值 有 14 种,其中 5 种是缩放模式,9 种是裁剪模式)
视频选择上传与图片类似,使用uni.chooseVideo选择视频搭配uni.uploadFile进行文件上传即可