当前位置: 首页 > java >正文

使用React实现调起系统相机功能

前言:

最近在公司推荐研发任务时实现了拍照识别功能,需要调起系统相机,笔者实现之后,将实现的流程分享给各位小伙伴

功能描述:

点击相机icon调起系统相机,同时可以选择是拍摄还是使用相册图片,然后传递给后端,后端处理之后,前端获取结果并进行展示

具体代码实现:

import React, {useState,useRef,
} from "react";    
const PhotoResult = (props) => {  
const fileInputRef = useRef(null);
const [imagePreview, setImagePreview] = useState("");
const [searchPhotoResuilt, setSearchPhotoResuilt] = useState({});
const handleImageClick = () => {fileInputRef.current.click(); // 触发input点击};const handleFileChange = (e) => {const file = e.target.files[0];if (!file) {return;}const reader = new FileReader();reader.onload = (e) => {setImagePreview(e.target.result); };reader.readAsDataURL(file);// 上传到后端uploadImage(file);};const uploadImage = async (file) => {const formData = new FormData();formData.append("file", file); // key 需和后端一致try {$postMiniImage(`你的请求名`,formData,token).then((res) => {if (res.code === 200) {setSearchPhotoResuilt(res.data);}});} catch (error) {console.error("上传失败:", error);}};return (<>   <img className="photo-img" onClick={handleImageClick}/><inputtype="file"accept="image/*"//只调起相机//capture="camera"ref={fileInputRef}onChange={handleFileChange}//取消选取图片执行的操作onCancel={() => {router.back();}}className="hidden-input"/></div></>);
}
//重要将input框进行隐藏
.hidden-input {display: none;
}

http://www.xdnf.cn/news/5041.html

相关文章:

  • 2025.05.07-淘天研发岗-第二题
  • goFrame框架中如何实现文件的excel导出
  • Spring Boot快速开发:从零开始搭建一个企业级应用
  • 普通IT的股票交易成长史--20250509 缺口(1)
  • LeetCode难题解析:数字字符串的平衡排列数目
  • 阻焊工艺如何保障多层PCB可靠性?5大核心功能与工艺控制要点
  • 深入理解 Istio 的工作原理 v1.26.0
  • 计算机网络:深度解析基于链路状态的内部网关协议IS-IS
  • OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——gmp
  • 赛季7靶场 - Environment
  • 死锁的形成
  • 国产Excel处理控件Spire.XLS系列教程:C# 将Excel文件转换为Markdown格式
  • 线程邮箱框架与示例
  • 《Spring Boot 3.0全新特性详解与实战案例》
  • 科学选择差分探头输入阻抗的方法
  • Liunx ContOS7 安装部署 Docker
  • RabbitMQ ②-工作模式
  • Rust 智能指针全解析:从原理到实践
  • 基于DeepSeek的韦恩图绘制:方法、优化与应用
  • NX884NX891美光固态闪存NX895NX907
  • ET2120工业Lora数传终端RS485串口4*AIAO+Moubus RTU
  • 北斗导航 | RTKLib中模糊度解算详解,公式,代码
  • 【愚公系列】《Manus极简入门》028-创业规划顾问:“创业导航仪”
  • Python - 如何打包并发布 Python 库到 PyPI
  • 运维体系架构规划
  • VBA -- 学习Day3
  • Java设计模式之抽象工厂模式:从入门到精通
  • 工业设计破局密码:3D 可视化技术点燃产业升级引擎
  • 如何将邮件送达率从60%提升到95%
  • 【Bootstrap V4系列】学习入门教程之 组件-表单(Forms)高级用法