uniapp中的打开图片上传与拍照功能

利用uni官方API—chooseImage实现

<button @click=(Uploadmsg)>点击打开相册与拍照</button>
const Uploadmsg = () => {
  // 获取相册
  uni.chooseImage({
    count: 1, // 默认9,设置图片的数量
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
    success: async (res) => {
      console.log(res.tempFilePaths[0]);
      const res1 = await uploadimg(res.tempFilePaths[0])
      console.log(res1);

    }
  })
}

封装的图片上传API

const baseURL = 'http://xxxx'
// 请求图像识别地址
const ORCbaseURL = 'http://xxx'
//上传图片
export const uploadimg = async (path) => {
	var result = null
	await uni.uploadFile({
		url: baseURL + '/app-api/ffd/v1/upload/image',
		filePath: path,
		// 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容
		name: 'file',
		header: {
			'content-type': "multipart/form-data",
			'huoli-token': uni.getStorageSync('huoli-token') ? uni.getStorageSync(
				'huoli-token') : '',
			'adType': 1
		},
		data: {
			'file': path
		},

	}).then(async (res) => {
		// uni.uploadFile返回来的结果默认是JSON格式字符串,需要用JSON.parse转换成js对象
		// console.log('上传数据转换', JSON.parse(res.data))
		let imgurl = JSON.parse(res.data)
		let data = imgurl.data
		let path = data.path
		console.log(path)
		result = path
		return (path)
	}).catch((error) => {
		console.log('失败', error)
	})
	return result
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UniApp 是一个基于 Vue.js 的跨平台应用框架,可以用于开发 iOS、Android、Web、小程序等多个平台的应用。在 UniApp 实现拍照上传图片功能可以通过使用原生的拍照组件和文件上传组件来实现。 首先,你需要引入 UniApp拍照组件 `camera`,在页面添加一个按钮,用于触发拍照操作。当用户点击按钮时,调用拍照组件,拍摄照片。 然后,你可以使用 UniApp 的文件上传组件 `upload` 将拍摄的照片上传到服务器。你需要设置上传的文件路径、文件名称等相关参数,并监听文件上传的回调函数,以获取上传成功后的结果。 以下是一个简单的示例代码: ```html <!-- 在页面添加一个拍照按钮 --> <template> <view> <button @click="takePhoto">拍照</button> </view> </template> <script> export default { methods: { takePhoto() { uni.chooseImage({ count: 1, // 可选图片的数量 sizeType: ['original', 'compressed'], // 可选原图和压缩图 sourceType: ['camera'], // 只能拍照,不允许从相册选择 success: (res) => { const tempFilePaths = res.tempFilePaths // 获取拍摄的照片临时文件路径 // 使用文件上传组件进行图片上传 uni.uploadFile({ url: '上传图片的接口地址', filePath: tempFilePaths[0], // 选择的图片的临时文件路径 name: 'file', // 上传文件对应的 key 名称 formData: {}, // 可以额外传递的参数 success: (res) => { console.log('上传成功', res.data) // 在这里可以根据返回结果进行相应处理 }, fail: (err) => { console.log('上传失败', err) // 在这里可以根据错误信息进行相应处理 } }) }, fail: (err) => { console.log('拍照失败', err) // 在这里可以根据错误信息进行相应处理 } }) } } } </script> ``` 以上代码,你需要将 `'上传图片的接口地址'` 替换为你的服务器端接口地址,用于接收图片并保存到服务器。另外,你还可以根据实际需求添加错误处理和文件上传进度等相关逻辑。 希望以上信息对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值