PracticU

שליחת תמונה לשרת בריאקט - React Forms

בלי כתוביותעם כתוביות
PracticU › קורס ריאקט - React › שליחת תמונה לשרת בריאקט - React Forms
מילון מושגים:
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
React - ספריית JavaScript לבניית ממשקי משתמש מבוססי רכיבים, שפותחה על ידי פייסבוק.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.
JavaScript - שפת תכנות שרצה בעיקר בדפדפן ומוסיפה אינטראקטיביות לדפי אינטרנט. רצה גם בצד השרת באמצעות Node.js.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
צד שרת - החלק של היישום שרץ בשרת ואחראי על הלוגיקה, מסדי הנתונים והעיבוד שמאחורי הקלעים.
POST - שיטת HTTP לשליחת נתונים לשרת כדי ליצור או לעדכן משאב, למשל שליחת טופס.
טופס - אזור בממשק שבו המשתמש מזין נתונים בשדות ושולח אותם, למשל טופס הרשמה או התחברות.

שליחת תמונה לשרת בריאקט - React Forms
כדי ששם, מחיר, מלאי ותמונה יישלחו לשרת יחד, בונים אובייקט FormData ושולחים אותו במקום אובייקט המוצר. ההרצאה מראה איך ממלאים אותו ואיך לוקחים תמונה אחת מתוך ה-FileList.
השלבים
1. יצירת האובייקט: const data = new FormData(). זה אובייקט native של JavaScript.
2. הוספת שדות: לכל שדה קוראים ל-append(name, value). הערך חייב להיות string או Blob (קובץ), ולכן את price ו-stock ממירים למחרוזת.
3. שמות שהשרת מכיר: השם שנותנים ב-append חייב להיות זה שהשרת מצפה לו, ולכן בודקים בתיעוד של ה-Backend. כאן הוא מקבל name, price, stock, ואת התמונה בשם image. ה-imageName הוא רק מה שהשרת מחזיר.
4. תמונה אחת: product.image הוא FileList. מסירים את התכונה multiple מהתיבה כדי שאפשר יהיה לבחור קובץ אחד, ומשתמשים בפריט הראשון, item(0) או [0].
5. שליחה: שולחים ב-axios.post את ה-FormData ולא את האובייקט המקורי. האובייקט מ-useForm מתאים רק כשאין בו קבצים.
6. בדיקה: נוסף מוצר תפוח במחיר 7.5 ומלאי 200 עם תמונה. השרת החזיר id 79, והתמונה הופיעה ברשימה וגם בכתובת Images של השרת.
שימו לב
- בלי multiple אי אפשר לבחור כמה קבצים, אבל התיבה עדיין מחזירה FileList.
- כדאי לקרוא את תיעוד ה-Backend כדי לדעת אילו שמות שדות הוא מצפה לקבל.
אחרי ההרצאה אפשר לשלוח מהטופס מידע מעורב של טקסט וקובץ לשרת.
השיעור הבא בקורס: הצגת תמונה בריאקט

פרקי ההרצאה: שליחת תמונה לשרת בריאקט - React Forms

  1. 00:00

    בניית אובייקט FormData

  2. 00:36

    הוספת שדות עם append

  3. 01:33

    התאמת שמות השדות לשרת

  4. 02:13

    קריאת הדוקומנטציה של ה-Backend

  5. 02:53

    שליחת התמונה כ-FileList

תמלול ההרצאה: שליחת תמונה לשרת בריאקט - React Forms

הטקסט המלא של הדקות הראשונות בהרצאה «שליחת תמונה לשרת בריאקט - React Forms» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    אז איך אנחנו גורמים גם לתמונה להישלח לשרה? מה שאנחנו צריכים לעשות זה לבנות אובייקט מסוג form data. form data זה בעצם פוסט נתונים שכבר קיים ב-JavaScript native.

  2. 00:18

    בואו נבנה כאן form data data שווה new form data ואנחנו פשוט הולכים ל-form data ואומרים לו append. אנחנו חייבים לתת לו name ו-value כי אלה הדברים שנשלחים לשרת, בדיוק ה-name הולך להישלח כ-name וה-value הולך להישלח כ-value, ושימו לב שה-value זה או string או blob, blob זה Binary Large Object,

  3. 00:47

    כלומר קבצים. אז אנחנו רוצים לשלוח קודם כל פריט אחד שנקרא name, ושה-value שלו זה product.name.

  4. 00:59

    אנחנו רוצים לשלוח עוד משתנה שנקרא Price וה-Value שלו זה Product.Price אבל אנחנו רואים שהוא לא מקבל את זה מפני שהוא אומר לי תשמע אני יודע לשלוח או סטרינגים או בלובים שזה קבצים אז אם אתה רוצה תהפוך לי אותו לסטרינג בבקשה הפכנו בואו ניתן לו עוד רופרטי שנקרא סטוק וזה בעצם יהיה הסטוק הוא גם כן חייב להיות סטרינגי

  5. 01:27

    ואנחנו רוצים לתת לו את האימג'. וכאן אנחנו רוצים לשלוח את האימג', כבר נראה איך עושים את זה, אבל הערה חשובה, הנימינג שאתם נותנים פה זה לא שם מומצא שאתם יכולים להמציא, זה מה שרת מצפה לקבל.

  6. 01:46

    השרת מצפה לקבל אובייקט product או product model שיש לו מאפיין שנקרא name, לכן זה נקרא name, ויש לו מאפיין שנקרא פרייס, זה מה שהשרת יודע לעבוד, ככה השרת עובד, ה-Backend הזה, ולכן פרייס.

  7. 02:05

    אם אנחנו רוצים לדעת בדיוק, אנחנו פשוט לוקחים את זה, גולשים ומסתכלים בדיוק מה המידע שהשרת עובד איתו.

  8. 02:14

    אנחנו רואים שהוא עובד עם Name ואנחנו רואים שהוא עובד עם Price ו-Stock. יש כאן Image Name שזה לא משהו שאנחנו מתעסקים איתו ואנחנו לא רואים פה את ה-Image, אבל זה אומר שאנחנו צריכים להמשיך לקרוא את הדוקומנטציה של ה-Backend הזה, כי כאן הוא לא מחזיר לנו בג'ייסון הזה את ה-Image, ה-Image זה רק משהו שאנחנו שולחים אליו.

  9. 02:35

    אז זה באמת משהו שחשוב לראות עם הדוקומנטציה, אני כבר מכיר את ה-Backend הזה, ואני יודע שהוא מצפה לקבל תמונה של מוצר בהקשר הזה, והתמונה פשוט נקראת Image, זה השם שלה.

  10. 02:50

    ואז אנחנו יודעים שיש לנו product.stock.image סליחה סליחה לא product.stock product.image אבל משהו לא מסתדר מפני ש-image זה פייל ליסט למה זה פייל ליסט זה פייל ליסט בגלל שהתיבה הזאת נותנת לנו רשימה של קבצים כי היוזר יכול בעזרת קונפיגורציה מסוימת להכניס מספר קבצים אם יש לנו פה את המאפיין

  11. 03:24

    מלטיפל אז זה אומר שכאשר היוזר רגע אולי אני רק יוריד את זה שהוא לא ייתן לי שם השגיאת ריצה אם אני אנסה כרגע לבחור קובץ אני רואה שאני

לקורס המלא: קורס ריאקט אונליין

ההרצאה הקודמת: שליחת מידע לשרת בריאקט - React Forms

ההרצאה הבאה: הצגת תמונה בריאקט

הרצאות קשורות מקורסים אחרים

  • שליחת email
  • Forms - Event Object
  • מצלמה - חלק 1 - צילום תמונה
  • הוספת תמונה למוצר

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס NodeJS