اذهب إلى المحتوى
  • 0

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

Ahmed Sawy

السؤال

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

 

استطعت بفضل الله نشر بيانات 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;

 

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

Recommended Posts

  • 1

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

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

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

  • 0
بتاريخ 13 دقائق مضت قال Nuhla Almasri:

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

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

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

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...