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

السؤال

نشر

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

أواجه مشكل في إرسال بيانات تحتوي صورة بعد تعديلها إلى الخادم.

الكود في طرف العميل

/**
   * Update Image Informations
   */
  const [image, setImage] = useState(imageSrc)
  const [imagePhoto, setImagePhoto] = useState(null)
  const [title, setTitle] = useState("")
  const [description, setDescription] = useState("")
  // console.log(imagePhoto?.name)
  useEffect(() => {
    if (current_photo) {
      setTitle(current_photo?.title || "");
      setDescription(current_photo?.description || "");
      setImage(imageSrc || "");
    }
  }, [current_photo, imageSrc]);

  // Handle Change Photo 
  const handleFileChange = (e) => {
    if (e.target.files && e.target.files[0]) {
      setImage(URL.createObjectURL(e.target.files[0]));
      setImagePhoto(e.target.files[0]);
    }
  };
  const updateImg = (e) => {
    e.preventDefault();
    const formData = new FormData();
    formData.append("title", title);
    formData.append("description", description);
    if (imagePhoto) {
      formData.append("photo", imagePhoto, imagePhoto?.name);
    }
    // formData.append("photo", imagePhoto)
    axios
      .post(`/api/images/user_images/${current_photo?._id}`, formData, {
        headers: {
          "Content-Type": "multipart/form-data",
          "x-auth-token": user.data?.token,
        },
      })
      .then((res) => {
        console.log(res.data);
        navigate("/");
      })
      .catch((error) => console.error(error));
  };

في طرف الخادم

// router
router.post("/user_images/:photoId", [upload.single('photo'), protect], editImg);

// controller
const editImg = async (req, res) => {
  try {
    const post = await Image.findById(req.params.photoId)

    post.title = req.file.title
    post.description = req.file.description
    post.photo = req.file ? req.file.filename : post.photo;
    
    const updatedPost = await post.save()
    res.status(200).json(updatedPost);
  } catch (error) {
    res.status(500).send("Server error" + error.message);
  }
};

شكرا على المساعدة.

Recommended Posts

  • 0
نشر

@محمود سعداوي2

لم يحدث مشكلة في عملية رفع الصورة عند الضغط على share image وإختيار الصورة وكتابة العنوان والوصف، تم الإرسال وظهرت الصورة في الصفحة الرئيسية كالتالي:

Snag_e7e57a.thumb.png.9733302ca067ed4cfe04baa33958bb2d.png

حاول حذف أي بيانات في local storage ثم تسجيل الخروج وتسجيل الدخول مرة أخرى، وحاول رفع الصورة.

بعد ذلك قمت بتعديل الصورة من المف الشخصي وتم تعديل العنوان كالتالي:

Snag_f36776.thumb.png.993db632ec24b57a8eacf9e9a74144a5.png

  • 0
نشر
بتاريخ 29 دقائق مضت قال Mustafa Suleiman:

@محمود سعداوي2

لم يحدث مشكلة في عملية رفع الصورة عند الضغط على share image وإختيار الصورة وكتابة العنوان والوصف، تم الإرسال وظهرت الصورة في الصفحة الرئيسية كالتالي:

Snag_e7e57a.thumb.png.9733302ca067ed4cfe04baa33958bb2d.png

حاول حذف أي بيانات في local storage ثم تسجيل الخروج وتسجيل الدخول مرة أخرى، وحاول رفع الصورة.

بعد ذلك قمت بتعديل الصورة من المف الشخصي وتم تعديل العنوان كالتالي:

Snag_f36776.thumb.png.993db632ec24b57a8eacf9e9a74144a5.png

شكرا.

عندما أعدت تشغيل البرنامج صار كل شيء على مايرام 

شكرا

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...