• 0

قمت بحل مشكلة ال formData بالنسبة للصورة ولكن الان هناك مشكلة اخرى وهى ان الاسم لا يتم عمل post له

السلام عليكم .. 

 

استطعت بفضل الله نشر بيانات formData لكى انشر الصور والملفات المختلفة ولكن للأسف الاسم لم يتم نشره كما موضح بالصورة 

60b5309548fa9_mongodb.png.8275dbcf3e8c1bad6366c8caa4faaf78.png

 

هذا هو الكود .. 

import axios from 'axios';
import React, {useState} from 'react';
import {Button, View, Image} from 'react-native';
import ImagePicker from 'react-native-image-crop-picker';
import mime from 'mime';
import baseURL from './baseURL';

function ImageScreen() {
  const [image, setImage] = useState('');
  const [name, setName] = useState('Ahmed');

  function dataLogger() {
    console.log(image);
  }

  const postData = () => {
    let formData = new FormData();
    const newImageUri = 'file:///' + image.split('file:/').join('');

    formData.append('name', name);
    formData.append('image', {
      uri: newImageUri,
      type: mime.getType(newImageUri),
      name: newImageUri.split('/').pop(),
    });

    axios
      .post(`${baseURL}posts`, formData, {
        headers: {
          'Content-Type': 'multipart/form-data',
        },
      })
      .then(res => console.log(res.data))
      .catch(err => console.log(err));
  };

  const takePhotoFromCamera = () => {
    ImagePicker.openCamera({
      compressImageMaxWidth: 300,
      compressImageMaxHeight: 300,
      cropping: true,
      compressImageQuality: 0.7,
    }).then(image => {
      console.log(image);
      setImage(image.path);
      this.bs.current.snapTo(1);
    });
  };

  const choosePhotoFromLibrary = () => {
    ImagePicker.openPicker({
      width: 300,
      height: 300,
      cropping: true,
      compressImageQuality: 0.7,
    }).then(image => {
      console.log(image);
      setImage(image.path);
      this.bs.current.snapTo(1);
    });
    console.log(image);
  };

  return (
    <View>
      <Image style={{height: 300, width: 300}} source={{uri: image}} />
      <Button title="from device" onPress={choosePhotoFromLibrary} />
      <Button title="from camera" onPress={takePhotoFromCamera} />
      <Button title="Post Data" onPress={postData} />
      <Button title="log" onPress={dataLogger} />
    </View>
  );
}

export default ImageScreen;

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

يبدو أن الأسم لا يصل الى السيرفر ليتم حفظها بعد ذلك في قاعدة البيانات هل تستطيع ان تقوم بأرسال الراوت المسؤول عن استلام هذه المعلومات و قبل ذلك هل يمكنك طباعة البيانات الواصلة الهذا الراوت و معرفة ما يحتويه و إرفاق صورة لقيمة الكونسول .

مثلا عليك كتابة console.log(res.body)

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0
بتاريخ 13 دقائق مضت قال Nuhla Almasri:

يبدو أن الأسم لا يصل الى السيرفر ليتم حفظها بعد ذلك في قاعدة البيانات هل تستطيع ان تقوم بأرسال الراوت المسؤول عن استلام هذه المعلومات و قبل ذلك هل يمكنك طباعة البيانات الواصلة الهذا الراوت و معرفة ما يحتويه و إرفاق صورة لقيمة الكونسول .

مثلا عليك كتابة console.log(res.body)

فعلا كان عندك حق .. نسيت اننى اخفيت بعض الخصائص الخاصة ب الموديل الخاص بالراوت ومنها الاسم .. لاننى كنت اركز فقط على نشر الصورة .. شكرا جزيلا على التنبيه 

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن