
enctype="multipart/form-data", ושדה מסוג file. בלי התכונה הזו הקובץ לא נשלח.../imagep/a/, כשהנקודות מציינות יציאה מתיקייה.global, כי ב-PHP משתנה חיצוני לא נראה בתוך פונקציה בלי ההכרזה.הטקסט המלא של הדקות הראשונות בהרצאה «קורס PHP - הרצאה 7» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אוקיי, צהריים טובים, היום אנחנו נמשיך את המסך של פייל אקספלואוד אם אתם זוכרים, על העלאת המוצרים, אנחנו בעצם מעלים מוצר, כן, ולמסד הנתונים התוצאה הסופית לאחר שהעלינו מוצר, זה יהיה התוצאה הזאת, אני אראה לכם באתר, כן, לאחר העלאת המוצרים, אנחנו נבנה גם משהו בעזרת אג'קס, מציג את המוצרים, אני אראה לכם, כן, איך זה אמור להיראות
אוקיי, זה המסך להעלאת המוצרים לאיזשהו תת-תפריט שיש, כן? שבעצם זה התת-תפריט שאתם רואים, האבות הראשי.
וכמובן, בואו סתם נלך להגיד לביצים ונעשה הצקת התפריט. אתם רואים ביצים? כי יש פה רק אחד. אם אני אגש לפה, אתם תראו פה ביצים, יש פה באמת רק אחד.
ואת המוצרים שאנחנו נעלה עם התמונות, בסופו של דבר זה ייראה כך. בעזרת אג'אט, זה מה שאנחנו עוד טוענים. תסתכלו, אני לוחץ פה, הנה, אוקיי? אז זה בעצם מוצרים שכבר הועלו עם השמות שלהם ועם התמונות שלהם, אוקיי?
סתם נלך לעוד הפתיעה, תיגון חימורי דגים, סתם בואו נלחץ פה, אוקיי? אז כן, שימו לב, יש לנו את כל התמונות, את הכל, זה עולה, יפה, נחמד, אוקיי.
אז זה בעצם המסך שיגרום להזין את הנתונים למסד הנתונים. בואו בינתיים נדבר בכלליות על העלאת קבצים לשרת. אוקיי, יש לי פה קובץ, יש לי פה קובץ שקראתי לו Upload File, בואו נראה איך עובדים, אוקיי, הנה זה הקובץ הזה, הוא שמור ב-TQ עד וירטואל, בואו נעשה דבר כזה, אוקיי, דבר ראשון, PHP,
בכדי לעבוד עם עברית, פרים, הדר, כן, פתוח גרש, גרש, ואז, content, פאי, עודותיים, טקסט, port/HTML,
דאפסיק, פרסט שווה UTF-8, אוקיי, דאפסיק, כמו שאנחנו יודעים, הפקודת עדר הזאת גורמת לנו לעבוד נכון עם העברית בשרת.
בואו ניצור קובץ html, קובץ, עם אפשרות להעלאת קובץ. מייל, אד, קריאה, פייטו, דור, אין, בואו נרשום באנגלית.
Upload file, אוקיי, מור, בודי, סגור את הבודי, אוקיי. בואו ניצור כותרת קודם כל, h1, פא, h1, דור, אין, Uploading file, קונטרולס, בואו רק נעשה רפרש, אוקיי.
אני רוצה את הכותרת באמצע, בואו נעבוד על ה-Inline Style של CSS, זוכרים? Style שווה, Align אותה, Align אותה, לא Align, טקסט-אליין אותה, כן?
טקסט-אליין סנטר. שימו לב, בגלל שה-H1 הוא אלמנט מסוג בלוק, אז הוא יכול לקבל את המאפיין הזה, טקסט-אליין סנטר, כן? רק אלמנטים מסוג בלוק יכולים לקבל את זה. דוגמה, אם היא אלמנט מסוג אינליין אלמנט, שזה תמיד באותה שורה, לא יוכל לקבל את הדבר הזה, טקסט-אליין-סנטר.
אבל כל דבר שהוא מסוג בלוק כן יכול להיות מושפע מהמאפיין טקסט-אליין. אוקיי, נמשיך הלאה. בואו ניצור טופס, וורם, נסגור אותו, ונתחיל לעבוד על המאפיינים שלו על מנת לאפשר לדף האינטרנט שלנו להעלות קבצים.
אוקיי, אקשן שווה איזה קובץ להפעיל. במקרה שלנו, אנחנו נפעיל את הקובץ הזה שאנחנו בעצם כותבים. אז בשביל כך, ככה עושים את זה.
מחמטיים של PHP, ו-thrin, דולר, PHP, PHP cell, אוקיי? זה אומר שברגע שיהיה לחיצה על כפתור submit, אותו הטופס עצמו, אותו הקובץ הזה עצמו, ה-HTML, ה-PHP הזה, יופעל.
לא קובץ אחר, אוקיי? המתודה, זה אומר שאני לא אראה בשורת הכתובת את הארגומנטים שאני שולח בשאילתה.
והדבר האחרון שהוא בעצם מאפשר לי את הפעולה עם קבצים, את הפעילות סליחה עם קבצים, נקרא ink type וזה multi-partform-data. בואו ניצור פה label, פור שווה, שימו לב, המאפיין הזה של פור זה אומר למי אני הולך לעשות את התווית הזאת, הלייבל הזאת, אז אם אני פה לדוגמה יוצר כרגע, אני קודם כל אסגור את התווית לייבל ואני אמצוא פה input time שווה פייל וזה אומר אלמנט קלט
משוג של העלאת קובץ, בואו ניתן לו את ה-name, name שווה בוא נאמר user file ובואו אז אותו שם שרשמתי פה יצטרך להיות בתווית זה for user file אז אני בעצם יודע שהלייבל הזה שייך ל input בואו רק נרשום פה באנגלית בואו נעשה פה שבירת שורה ואת הכפתור submit שלנו שהוא בעצם מפעיל את הטופס
סאב מיט וליו שווה גלו סן פייר וניתן לו ניים שווה סן ונוכל להתייחס עליו אחר כך למאפיין הזה סן אוקיי לניהם אוקיי בואו רק נראה עד עכשיו איך זה נראה אוקיי הנה בסדר אז כאן זה בעצם הלייבל שלי שהוא שייך לאלמנט של העלאת הקובץ וזה הכפתור סאב מיט אוקיי אז אם אני לוחץ פה על
סתם הנה יש לי פה קובץ של תמונה אז הנה בעצם הוא פה מוכן ומופנה ומקושר לקובץ הזה של התמונה. איך אני בעצם רואה את כל המעטיינים של הקובץ הזה? עכשיו העליתי לתיבה, אז בואו נראה, בואו נרשום ככה אם נלחץ הכפתור send dollar request האם הוא הוטחל, זאת אומרת הופעל, נלחץ, בואו נרשום
פה את הפקודות לטיפול בקבצית הכלוב בכדי להציג את שם הקובץ ECHO, זה הכל נמצא בתוך משתנה סופר גלובלי, נקרא $_FI. ואיך אנחנו מתייחסים לקובץ? קודם כל כאן, במרובעים הראשונים אנחנו נותנים את ה-NAME שהגדרנו בתווית ה-INPUט סייפ פאייפ, אוקיי?
בואו נעתיק את זה כמה פעמים, כי יש פה כמה וכמה מאפייקים, אוקיי? בואו נעתיק, ונעשה פה גם עוד אקו ספאט, אקו ביאר, תיק את השורות האלה, כי יש לנו כמה וכמה מאפיינים שאפליהם, אוקיי, בואו בינתיים נגיד, אוקיי, עכשיו, אם אני רוצה את שם הקובץ, פשוט name, שם הקובץ, אם אני רוצה לדעת מאיזה סוג הקובץ,
שנת, טקסט, וורד, פאוור פוינט, פשוט site, במידה ואני רוצה את הגודל של הקובץ, site, להציג, כן, את השם הזמני שהשרת נותן לקובץ, Name, אוקיי, בואו תראו, בואו נרפרש, אין, תהיו, אתם זוכרים את SatGuar?
נעשה Open, ונעשה SendFile, הנה, תסתכלו, הנה שם הכובד, SatGuar.gif, הנה מאיזה צייפור, מאיזה סוג, אימג' גיו, הנה הגודל שלו בבית, 6,089, כן, והנה כיצד השרת נותן לו את השם הזמני, אז הוא שומר את זה בתיקיית טמפט, בשם לדוגמה php120.tmp, ככה השרת בינתיים נותן שם זמני לכובד. הוא עושה כל מיני פעולויות מאחורי הרקע, דברים שאנחנו לא יודעים בדיוק מה הוא עושה כרגע,
אבל הוא נותן לזה שם זמני. בעיקרון זה כמעט כל התורה של העלאת קבצים. אבל בעצם אנחנו צריכים להשתמש כרגע בפונקציה העיקרית. כשאני בא בתור לקוח, ואני רוצה לדוגמה, כמו שלדוגמה ב-yout, אני מעלה סרטון, אז לדוגמה יש פה במקום send file יש פה upload file, נכון?
אז בעצם הוא לוקח את הסרטון מהמחשב שלי ושם את זה בשרת של יוטיוב בתיקייה מסוימת. בעזרת איזה פונקציה הוא משתמש? אז ב-PHP יש את הפונקציה הבאה, שעכשיו אני אראה אותה, והפונקציה הזאת נקראת move uploaded file.
תסתכלו, move uploaded file. הפרמטר הראשון, file name, ואנחנו יודעים בדיוק איך קראנו לזה, זה בעצם הדבר הזה. זה שם הקובץ, אוקיי?
אבל בעיקרון פה, זה לא שם הקובץ צריך לתת, צריך לתת את שם הקובץ הזמני, אוקיי? שהשרפנו, שם הקובץ הזמני, אז save.tm.net. עכשיו, כן, עכשיו אני צריך לשים אותו בדסטיניישן, ביעד, איפה?
אנחנו יודעים, כן, בעיקרון אם אנחנו נשים לב, בואו נסתכל איפה אנחנו נמצאים, אנחנו נמצאים פה, אתם רואים ב-examples, virtual, בואו ניגש רגע פה ל-one, פה בעצם מופיע הקובץ שלי, שנקרא Uploaded File. בואו נאמר שאני רוצה לדחוף אותו פה לתיקייה הזאת, ל-ImageP, אוקיי?
אז קודם כל אני צריך לצאת מהתיקייה הזאת, נכון? אני צריך לצאת מהתיקייה הזאת. אז בואו נעשה ככה: נקודה, נקודה, forward slash, זה אומר בבקשה לצאת מהתיקייה הזאת.
אחר כך צריך להיכנס לתיקיית ImageP, אוקיי? ואחר כך אני צריך פשוט פה להכניס את שם הקובץ. אז יהיה, נשרשר עם נקודה, כן? דולר פיינד, אחד דולר פיינד, כן?
יוזר פיינד, ה-Name, אוקיי? בואו נראה, זה פשוט הפונקציה. היא תעביר לי את הקובץ הזמני, כפי שהוא נשמר, את השם שאליו ככה מתייחס השרת, והוא יעלה אותו לתיקייה בשרת, שנקראת לדוגמה אימג'-פי, עם אותו שם של קובץ קצת גואר, בואו נראה שאכן זה עובר, רואים שפה כרגע אין לי שום קובץ
כזה? בואו רק ניקח את זה, נעשה גזור ועיון, אני לוקח ואני הולך להעביר בעזרת השרת את הקובץ הזה לתוך, אוקיי, בואו נראה שאכן זה עבר, הנה הוא, ראיתם? העברתי בעצם את הקובץ מהנקודה הזאת, הנה, העברתי אותו לכאן, זה כל בעצם הלוגיקה של העלאת קבצים לשרת, כאן אנחנו בעצם הולכים להמשיך לטופס הזנת מוצרים שלנו, אתם זוכרים אותו?
אז בואו נראה איך אנחנו עושים, אוקיי, בסדר, אז תזכורת, מה בעצם, אנחנו מציגים את התפריט וייצג את התפריט לדוגמה ביתי, אני מסמן אותו, אני עושה עיון ובעצם דיברנו על זה בהרצאות שבכדי שלא תהיה בעיה להעתקת התמונות והשמות מהאתר אז אמרנו שאת שם המוצר אנחנו רושמים בהתחלה נקודה, שם החברה, וככה אנחנו בעצם שומרים את התמונה
וכשאנחנו עושים open, אז בעצם זה מופיע כאן וכשאנחנו עושים פרק את הקובץ והכנס למסד הנתונים מה שקורה הוא לקח את שם המוצר ושם אותו פה את שם החברה הוא שם פה והוא שינה את השם של הקובץ במקום השם, תקלו, השם הזה, כן, למה שנוכל לעבוד איתו בשפת תכנות, כן, שהמשהו הזה בעצם הוא מספר סידורי ונראה איך אנחנו עושים את זה
והסיומת של הקובץ ובעצם המסלול הזה אתם רואים נקודה נקודה port slash image p port slash והתיקייה a port slash ושם הקובץ זה בעצם הולך להופיע במסד הנטוי אם אני אבוא ואני אראה לכם פה את מסד הנתונים, בואו נלך רק לפרודקט המוצרים אז הנה יש לי פה לדוגמה מוצר חדש שהוכנס,
לאיזה אבא הוא שייך, לאיזה תת תפריט הוא שייך, הנה הפרודקט ניים שבעצם נכנס מפה, זה פרודקט ניים קומפני שזה בעצם זה, התמונה הועלתה לשרת לתיקיית אייג בתוך תיקיית אימג' פי כמו שראינו, והשם שניתן לקובץ לדוגמה זה 1.jpg כאן בטבלה אנחנו רואים בעצם את ההתייחסות לקובץ.
זה בדיוק מה שאנחנו כרגע הולכים לעשות, להסביר איך עושים את כל המהלך הזה. איך אנחנו בעצם מעלים את הקובץ לשרת, בעצם מפרקים את שם הקובץ ל-product name ו-product