客户端
用了 expo 的ImagePicker
import { ImagePicker } from 'expo';
...
let result = await ImagePicker.launchImageLibraryAsync({
allowsEditing: true,
aspect: [4, 3],
});
let form = new FormData();
form.append('files', {
uri: result.uri,
type: 'multipart/form-data',
name: 'image.png'
});
fetch('http://192.168.1.121:7000/api/v1/file/upload', {
method: 'POST',
headers: {
'Content-Type': 'multipart/form'
},
body: form
}).then((res) => {return res.json()}).then((res) => {
alert(JSON.stringify(res))
}).catch((e) => {
alert(e)
})
注意:文件体格式不能改变,必须是uri、type、name
服务端
这里用老牌的formidable做示例,便于理解
let formidable = require('formidable');
exports.upload = function(req, res) {
var form = new formidable.IncomingForm();
form.uploadDir = "./uploaded"; // 根据实际需要修改
form.parse(req, (err, fields, files) => {
console.log(err, fields, files)
})
}
Comments(0)