כיצד להוריד קובץ ב- PHP

How Download File Php



באופן כללי, לא נדרש סקריפט PHP להורדת קובץ עם התוספים exe ו רוכסן . אם מיקום הקובץ של קובץ מסוג זה מוגדר ב- href התכונה של רכיב העוגן, ואז הקובץ יורד אוטומטית כאשר המשתמש לוחץ על קישור ההורדה. כמה קבצים, כגון תמונה קבצים, PDF קבצים, טֶקסט קבצים, CSV קבצים וכו ', לא יורדים אוטומטית, ובמקום זאת, נפתחים בדפדפן כאשר המשתמש לוחץ על קישור ההורדה. ניתן להוריד קבצים אלה בכוח ב- PHP באמצעות קובץ הקריאה מחדש () פונקציה שאינה מורידה אוטומטית. הדרכה זו מראה לך כיצד להוריד בכוח כל קובץ באמצעות סקריפט PHP.

בדוק את הקישורים להורדה

זה הוזכר בעבר רוכסן ו exe קבצים מורידים אוטומטית, ללא שימוש ב- PHP. ראשית, צור קובץ HTML עם הקוד הבא. כאן, ארבעת רכיבי העוגן מוגדרים להורדת ארבעת סוגי הקבצים. סוגי קבצים אלה כוללים קובצי TEXT, ZIP, PDF ו- JPG.







הורד.html



< html >
< רֹאשׁ >
< כותרת >להוריד קבצים</ כותרת >
</ רֹאשׁ >
< גוּף >
< עמ >< ל href='abc.txt'>הורד קובץ TEXT</ ל ></ עמ >
< עמ >< ל href='horizon.zip'>הורד קובץ ZIP</ ל ></ עמ >
< עמ >< ל href='lecture.pdf'>הורד קובץ PDF</ ל ></ עמ >
< עמ >< ל href='rose.jpg'>הורד קובץ JPG</ ל ></ עמ >
</ גוּף >
</ html >

תְפוּקָה
תיבת הדו -שיח הבאה תופיע להורדת הקובץ לאחר לחיצה על הקישור לקובץ zip. לאחר מכן המשתמש יכול להוריד את הקובץ או לפתוח את הקובץ במנהל הארכיון.




אם תלחץ על קובץ התמונה, התמונה תיפתח אוטומטית בדפדפן, כפי שמוצג בפלט הבא. עליך לשמור את הקובץ כדי ליצור עותק של קובץ התמונה בכונן המקומי. באותו אופן, כאשר תלחץ על קישורי קובץ PDF ו- TEXT, תוכן הקובץ ייפתח בדפדפן מבלי להוריד את הקובץ. הפתרון לבעיה זו הוא הורדת הקובץ בכוח באמצעות ה- PHP המובנה קובץ קריאה () פוּנקצִיָה.





הורד קובץ באמצעות פונקציית readfile ()

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



תחביר
int readfile (מחרוזת $ filename [, bool $ use_include_path = false [, משאב $ context]])

פונקציה זו יכולה להכיל שלושה ארגומנטים. הטענה הראשונה היא חובה ושני הטיעונים האחרים הינם אופציונליים. הטענה הראשונה, $ קובץ , מאחסן את שם הקובץ או את שם הקובץ עם הנתיב שיוריד. ערך ברירת המחדל של הפרמטר השני, $ use_include_path , הוא שקר ויוגדר כ- true אם נעשה שימוש בשם הקובץ עם הנתיב בארגומנט הראשון. הטענה השלישית, הקשר של $ , משמש לציון משאב זרם ההקשר. פונקציה זו מחזירה את מספר הבייטים הנקראים מהקובץ שהוזכר בארגומנט הראשון. השימושים בפונקציה זו מוצגים בשתי הדוגמאות הבאות.

דוגמה 1: הורד קובץ בשם קובץ

בדוגמה זו ניצור קובץ HTML עם הקוד הבא, שם שם הקובץ יועבר כפרמטר של כתובת ה- URL בשם נָתִיב , והערך של פרמטר זה יועבר לקובץ ה- PHP בשם download.php .

הורד 2.html

< html >
< רֹאשׁ >
< כותרת > הורדת קבצים</ כותרת >
</ רֹאשׁ >
< גוּף >
< עמ >< ל href='download.php? path = abc.txt'> הורדהטֶקסטקוֹבֶץ</ ל ></ עמ >
< עמ >< ל href='download.php? path = horizon.zip'> הורד קובץ ZIP</ ל ></ עמ >
< עמ >< ל href='download.php? path = lecture.pdf'> הורד קובץ PDF</ ל ></ עמ >
< עמ >< ל href='download.php? path = rose.jpg'> הורד קובץ JPG</ ל ></ עמ >
</ גוּף >
</ html >

ניצור את קובץ ה- PHP עם הקוד הבא להורדת הקובץ בכוח. הנה ה נעלם) הפונקציה משמשת כדי לבדוק אם $ _GET ['נתיב'] מוגדר. אם המשתנה מוגדר, הקובץ קיים() הפונקציה משמשת כדי לבדוק אם הקובץ קיים בשרת. לאחר מכן, ה כּוֹתֶרֶת() הפונקציה משמשת להגדרת מידע הכותרת הדרוש לפני השימוש ב קובץ קריאה () פוּנקצִיָה. ה שם בסיס () הפונקציה משמשת לאחזור שם הקובץ ו- גודל הקובץ() הפונקציה משמשת לקריאת גודל הקובץ בבתים, שתוצג בתיבת הדו -שיח הפותחת להורדת הקובץ. ה סומק() הפונקציה משמשת לניקוי מאגר הפלט. ה קובץ קריאה () הפונקציה משמשת עם שם הקובץ בלבד, כאן.

download.php



אם( נעלם ($ _ קבל['נָתִיב']))
{
// קרא את שם הקובץ
$ קובץ = $ _ קבל['נָתִיב'];
// בדוק שהקובץ קיים או לא
אם( הקובץ קיים ($ קובץ)) {

// הגדר פרטי כותרת
כּוֹתֶרֶת ('תיאור תוכן: העברת קבצים');
כּוֹתֶרֶת ('סוג תוכן: יישום/זרם אוקטטים');
כּוֹתֶרֶת ('בקרת מטמון: אין מטמון, חובה לאמת מחדש');
כּוֹתֶרֶת ('פג תוקף: 0');
כּוֹתֶרֶת ('תוכן-דיספוזיציה: מצורף; שם קובץ = ''. שם בסיס ($ קובץ).'' ');
כּוֹתֶרֶת ('אורך תוכן:' . גודל הקובץ ($ קובץ));
כּוֹתֶרֶת ('פרגמה: ציבורית');

// נקה מאגר פלט מערכת
סומק ();

// קרא את גודל הקובץ
קובץ קריאה ($ קובץ);

// לסיים מהתסריט
ה ();
}
אַחֵר{
זרק 'הקובץ אינו קיים.';
}
}
אַחֵר
זרק 'שם הקובץ אינו מוגדר.'
?>

תְפוּקָה
הפלט הבא יופיע לאחר לחיצה על קישור ההורדה של קובץ התמונה. גודל הקובץ של rose.jpg התמונה היא 27.2 KB , כפי שמוצג בתיבת הדו -שיח. אתה יכול להוריד את הקובץ על ידי בחירה ב שמור את הקובץ לחצן הבחירה ולחיצה על בסדר לַחְצָן.

דוגמה 2: הורד קובץ עם נתיב קבצים

אם הקובץ קיים במיקום הקובץ הנתון, נתיב הקובץ יידרש לציין בכתובת האתר. בדוגמה זו, ניצור קובץ HTML עם הקוד הבא, שיעביר את שם הקובץ עם נתיב הקובץ:

הורד 3.html

< html >
< רֹאשׁ >
< כותרת >להוריד קבצים</ כותרת >
</ רֹאשׁ >
< גוּף >
< עמ >< ל href='download.php? path = downloads/lecture.pdf'>הורד קובץ PDF</ ל ></ עמ >
< עמ >< ל href='download2.php? path = downloads/rose.jpg'>הורד קובץ JPG</ ל ></ עמ >
</ גוּף >
</ html >

ניצור קובץ PHP עם הקוד הבא להורדת קובץ מנתיב הקובץ. קוד ה- PHP בדוגמה הקודמת ישתנה מעט להורדת הקובץ מהנתיב הנתון. ה clearstatecache () הפונקציה משמשת לניקוי המטמון שנשמר בעבר. שני טיעונים משמשים ב קובץ קריאה () פוּנקצִיָה.

הורדה 2. php


אם( נעלם ($ _ קבל['נָתִיב']))
{
// קרא את כתובת האתר
כתובת אתר $ = $ _ קבל['נָתִיב'];

// נקה את המטמון
clearstatcache ();

// בדוק אם קיים נתיב הקובץ או לא
אם( הקובץ קיים (כתובת אתר $)) {

// הגדר פרטי כותרת
כּוֹתֶרֶת ('תיאור תוכן: העברת קבצים');
כּוֹתֶרֶת ('סוג תוכן: יישום/זרם אוקטטים');
כּוֹתֶרֶת ('תוכן-דיספוזיציה: מצורף; שם קובץ = ''. שם בסיס (כתובת אתר $).'' ');
כּוֹתֶרֶת ('אורך תוכן:' . גודל הקובץ (כתובת אתר $));
כּוֹתֶרֶת ('פרגמה: ציבורית');

// נקה מאגר פלט מערכת
סומק ();

// קרא את גודל הקובץ
קובץ קריאה (כתובת אתר $,נָכוֹן);

// לסיים מהתסריט
ה ();
}
אַחֵר{
זרק 'נתיב קובץ אינו קיים.';
}
}
זרק 'נתיב הקובץ אינו מוגדר.'

?>

תְפוּקָה
לאחר לחיצה על קישור ההורדה של קובץ ה- PDF, יופיע הפלט הבא.

סרטון הדרכה

סיכום

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