通过React Native Client上传mongoDB数据库中的图片文件

问题描述 投票:0回答:1

我可以通过postman获取mongoDB数据库中的图像文件,但不能通过React Native Client获取。我怀疑问题出在 formData 配置中。 非常感谢您的反馈

您可以在以下位置找到代码:

客户: https://github.com/kjahandel/rn/compare/kjahandel-patch-1?expand=1

型号: https://github.com/kjahandel/rn/compare/kjahandel-patch-3?expand=1

服务器: https://github.com/kjahandel/rn/compare/kjahandel-patch-2?expand=1

我可以通过postman获取mongoDB数据库中的图像文件,但是从React Native App获取:

const uploadImage = async (selectedImageUri) => {

        if(!selectedImageUri){
            console.error("Kein Bild zum Hochladen ausgewählt.");
            return;
        }

        // Extrahieren des Dateinamens aus der imageUri
        const fileName = extractFileName(selectedImageUri);
        const formData = new FormData();

        formData.append('image', {

            name: fileName,
            img: {
                data: selectedImageUri,
                type: 'image/jpg' || 'image/jpeg' || 'image/png' || 'image/gif',
            },

        });

        try {
            const response = await axios.post('https://4c5b-77-0-73-93.ngrok-free.app/uploadImage', formData, {
                headers: {
                    "Content-Type": "multipart/form-data",
                },
            });

            console.log("Bild wurde erfolgreich hochgeladen", response.data);
            alert('Bild wurde erfolgreich hochgeladen.');

        } catch (error) {
            console.error("Fehler beim Hochladen des Bildes: ", error);
            alert("Fehler beim Hochladen des Bildes.");
        }
    };

在 mongoDB 中:

_id: 650df8d6dc19fef473035276
name: "1695414486229_F268D1D7-70B1-4878-9A87-44917DA1DCE8.jpg"

img: Object
   data: BinData(0, '').  <-- ???????????
   contentType: "image/jpg"
__v
mongodb react-native mongoose image-upload
1个回答
0
投票

文件对象应该具有

uri
name
type
字段,如下所示:

const formData = new FormData();
formData.append(
  'image',
  {
    uri: <uri>,
    name: <name>,
    type: <type>
  }
);
axios.post(<url>, formData);
© www.soinside.com 2019 - 2024. All rights reserved.