Uploading pictures belongs to file upload, that is, using input:file.
<input type="file" multiple onChange="callback" />
multiple means multiple upload options are available. But only the IOS system is valid.
OnChange processes files
const onChange = e => { const files = e.target.files Promise.all( Array.from(files).map(file => readFile(file).then(base64Str => axios.post("xxx", { body: base64Str })) ) ) }
the type of files is FileList, which is a pseudo array. ReadFile is the encapsulation of FileReader
const readFile = (file: File) => new Promise<string>((resolve, reject) => { const reader = new FileReader() reader.readAsDataURL(file) reader.addEventListener("load", () => resolve(reader.result.toString())) reader.addEventListener("error", () => reject(reader.result)) })