【发布时间】:2022-07-20 23:36:56
【问题描述】:
我在从我的 react 原生应用上传图片时遇到问题。我有一个 react 应用程序,可以将图像作为文件从相机上传到后端。
let pic = await camera.current.takePictureAsync({
quality: 1,
base64: true,
});
setPicture(pic);
然后
onPress={() => {
const formData = new FormData();
formData.append("file", {
name: picture + "",
type: picture.type,
uri:
Platform.OS === "ios"
? picture.uri.replace("file://", "")
: picture.uri,
});
console.log(formData);
httpClient
.post("demo/testsaveimg", formData)
.then((request) => {
if (request.data == "ok") {
console.log(request.data);
}
});
}}
然后,这是我的服务
app.post('/testsaveimg', async function (req, res, next) {
let storageUploadFile = multer.diskStorage({
destination: (req, file, next) => {
const folder = './test/'
if (!fs.existsSync(folder)) {
fs.mkdirSync(folder)
}
next(null, folder)
},
filename: (req, file, next) => {
const ext = file.mimetype.slice("/")[1]
next(null, `${file.fieldname}-${Date.now()}.${ext}`)
}
})
let UploadFile = multer({ storage: storageUploadFile }).single("files");
UploadFile(req, res, async function (err) {
console.log(req.file);
if (err instanceof multer.MulterError) {
return res.status(500).json(err);
} else if (err) {
console.log(99);
return res.status(500).json(err);
}
if (req.file != undefined) {
console.log("ok");
res.json("ok")
} else {
console.log("no");
res.json("no")
}
})
})
但文件夹“./test/”中没有图片,响应为“no” 这意味着“req.file = undefined” 我做错了什么步骤? 还是有别的写法?
【问题讨论】:
标签: node.js react-native