用到的兩個庫:react-native-compressor
和 react-native-image-picker
。
const {
assets: [{ uri, type, fileName }]
} = await launchImageLibrary({
mediaType: 'mixed',
presentationStyle: 'fullScreen',
quality: 0.8,
selectionLimit: 1
})
const compressedUri = await CompressImage.compress(uri, { quality: 0.8, maxWidth: 1000, maxHeight: 2000 })
console.log('assets', compressedUri)
const formData = new FormData()
// 重點在這
formData.append('file', {
// uri: 本地文件絕對路徑
uri: compressedUri,
type,
name: fileName
})
const { data, error } = await uploadFile(formData)
console.log('上傳圖片: data, error', data, error)
// 網絡請求
export const uploadFileRequest = formdata =>
request.post({
path: 'http://xxxxxxxxxx/file/v1/newUpload',
params: formdata,
header: { 'Content-Type': 'multipart/form-data' }
})