كيفية تنزيل ملف في PHP

How Download File Php



بشكل عام ، لا يلزم نص PHP لتنزيل ملف بالامتدادات إملف تنفيذى و أزيز . إذا تم تعيين موقع الملف لهذا النوع من الملفات في ملف href السمة لعنصر الارتساء ، ثم يتم تنزيل الملف تلقائيًا عندما ينقر المستخدم على رابط التنزيل. بعض الملفات ، مثل صورة الملفات ، بي دي إف الملفات ، نص الملفات ، CSV الملفات ، وما إلى ذلك ، لا يتم تنزيلها تلقائيًا ، وبدلاً من ذلك ، افتح المتصفح عندما ينقر المستخدم على رابط التنزيل. يمكن تنزيل هذه الملفات بالقوة في PHP باستخدام readfile () وظيفة لا يتم تنزيلها تلقائيًا. يوضح لك هذا البرنامج التعليمي كيفية تنزيل أي ملف بالقوة باستخدام برنامج PHP النصي.

تحقق من روابط التنزيل

سبق ذكره أن أزيز و إملف تنفيذى يتم تنزيل الملفات تلقائيًا ، دون استخدام برنامج PHP النصي. أولاً ، قم بإنشاء ملف HTML بالشفرة التالية. هنا ، يتم تعريف عناصر الربط الأربعة لتنزيل الأنواع الأربعة من الملفات. تتضمن أنواع الملفات هذه ملفات TEXT و ZIP و PDF و JPG.







Download.html



< لغة البرمجة >
< رئيس >
< لقب >تحميل ملفات</ لقب >
</ رئيس >
< هيئة >
< ص >< إلى href='abc.txt'>قم بتنزيل ملف TEXT</ إلى ></ ص >
< ص >< إلى href='horizon.zip'>تنزيل ملف مضغوط</ إلى ></ ص >
< ص >< إلى href='محاضرة. pdf'>قم بتنزيل ملف PDF</ إلى ></ ص >
< ص >< إلى href='rose.jpg'>قم بتنزيل ملف JPG</ إلى ></ ص >
</ هيئة >
</ لغة البرمجة >

انتاج |
سيظهر مربع الحوار التالي لتنزيل الملف بعد النقر فوق ارتباط الملف المضغوط. يمكن للمستخدم بعد ذلك تنزيل الملف أو فتح الملف في مدير الأرشيف.




إذا قمت بالنقر فوق ملف الصورة ، فسيتم فتح الصورة تلقائيًا في المتصفح ، كما هو موضح في الإخراج التالي. يجب عليك حفظ الملف لعمل نسخة من ملف الصورة في محرك الأقراص المحلي. بنفس الطريقة ، عند النقر فوق روابط ملف PDF و TEXT ، سيتم فتح محتوى الملف في المتصفح دون تنزيل الملف. حل هذه المشكلة هو تنزيل الملف بالقوة باستخدام PHP المدمج إقرا الملف() وظيفة.





تنزيل الملف باستخدام وظيفة readfile ()

ال إقرا الملف() تُستخدم الوظيفة في نص PHP لتنزيل أي ملف من الموقع الحالي بالقوة ، أو الملف بمسار الملف. فيما يلي بناء جملة هذه الوظيفة.



بناء الجملة
int readfile (سلسلة $ filename [، bool $ use_include_path = false [، Resource $ Context]])

يمكن أن تستغرق هذه الوظيفة ثلاث حجج. الوسيطة الأولى إلزامية ، أما الوسيطتان الأخريان فهي اختيارية. الحجة الأولى ، اسم الملف $ ، يخزن اسم الملف أو اسم الملف بالمسار الذي سيتم تنزيله. القيمة الافتراضية للمعلمة الثانية ، use_include_path دولار ، هو خطأ وسيتم تعيينه على صواب إذا تم استخدام اسم الملف الذي يحتوي على المسار في الوسيطة الأولى. الحجة الثالثة سياق $ ، للإشارة إلى مصدر تدفق السياق. ترجع هذه الدالة عدد البايتات المقروءة من الملف المذكور في الوسيطة الأولى. يتم عرض استخدامات هذه الوظيفة في المثالين التاليين.

مثال 1: تنزيل ملف باسم ملف

في هذا المثال ، سننشئ ملف HTML بالشفرة التالية ، حيث سيتم تمرير اسم الملف كمعامل لعنوان URL المسمى طريق ، وسيتم تمرير قيمة هذه المعلمة إلى ملف PHP المسمى download.php .

download2.html

< لغة البرمجة >
< رئيس >
< لقب > تنزيل الملفات</ لقب >
</ رئيس >
< هيئة >
< ص >< إلى href='download.php؟ path = abc.txt'> تنزيلنصملف</ إلى ></ ص >
< ص >< إلى href='download.php؟ path = horizon.zip'> تنزيل ملف مضغوط</ إلى ></ ص >
< ص >< إلى href='download.php؟ path = lecture.pdf'> تنزيل ملف PDF</ إلى ></ ص >
< ص >< إلى href='download.php؟ path = rose.jpg'> تنزيل ملف JPG</ إلى ></ ص >
</ هيئة >
</ لغة البرمجة >

سننشئ ملف PHP بالشفرة التالية لتنزيل الملف قسرًا. هنا ، ذهب) يتم استخدام الوظيفة للتحقق مما إذا كان ملف $ _GET ['مسار'] ويعرف. إذا تم تعريف المتغير ، فإن الملف موجود() يتم استخدام الوظيفة للتحقق مما إذا كان الملف موجودًا في الخادم. بعد ذلك ، ملف رأس () يتم استخدام الوظيفة لتعيين معلومات الرأس الضرورية قبل استخدام إقرا الملف() وظيفة. ال الاسم الأساسي () يتم استخدام الوظيفة لاسترداد اسم الملف ، و حجم الملف() تُستخدم الوظيفة لقراءة حجم الملف بالبايت ، والذي سيظهر في مربع حوار الفتح لتنزيل الملف. ال تدفق () يتم استخدام الوظيفة لمسح المخزن المؤقت للإخراج. ال إقرا الملف() تستخدم الوظيفة مع اسم الملف فقط ، هنا.

download.php



لو( ذهب (_ احصل عليه['طريق']))
{
// اقرأ اسم الملف
اسم الملف $ = _ احصل عليه['طريق']؛
// تحقق من وجود الملف أم لا
لو( الملف موجود (اسم الملف $)) {

// تحديد معلومات الرأس
رأس ('وصف المحتوى: نقل الملف')؛
رأس ('نوع المحتوى: تطبيق / ثماني دفق')؛
رأس ('التحكم في ذاكرة التخزين المؤقت: عدم وجود ذاكرة تخزين مؤقت ، يجب إعادة التحقق من صحتها')؛
رأس ('تنتهي: 0')؛
رأس ('ترتيب المحتوى: التعلق ؛ اسم الملف = '. الاسم الأساسي (اسم الملف $).'')؛
رأس ('طول المحتوى: ' . حجم الملف (اسم الملف $))؛
رأس (براغما: عامة)؛

// مسح المخزن المؤقت لإخراج النظام
دافق ()؛

// اقرأ حجم الملف
إقرا الملف (اسم الملف $)؛

// إنهاء من البرنامج النصي
ال ()؛
}
آخر{
رما - طرد - قذف 'الملف غير موجود.'؛
}
}
آخر
رما - طرد - قذف لم يتم تعريف اسم الملف.
؟>

انتاج |
سيظهر الإخراج التالي بعد النقر فوق ارتباط تنزيل ملف الصورة. حجم ملف rose.jpg الصورة 27.2 كيلوبايت ، كما هو موضح في مربع الحوار. يمكنك تنزيل الملف عن طريق اختيار ملف احفظ الملف زر الراديو والضغط على نعم زر.

مثال 2: تنزيل ملف باستخدام مسار الملف

إذا كان الملف موجودًا في موقع الملف المحدد ، فسيلزم ذكر مسار الملف في عنوان URL. في هذا المثال ، سننشئ ملف HTML مع الكود التالي ، والذي سيمرر اسم الملف بمسار الملف:

download3.html

< لغة البرمجة >
< رئيس >
< لقب >تحميل ملفات</ لقب >
</ رئيس >
< هيئة >
< ص >< إلى href='download.php؟ path = downloads / lecture.pdf'>قم بتنزيل ملف PDF</ إلى ></ ص >
< ص >< إلى href='download2.php؟ path = downloads / rose.jpg'>قم بتنزيل ملف JPG</ إلى ></ ص >
</ هيئة >
</ لغة البرمجة >

سننشئ ملف PHP بالشفرة التالية لتنزيل ملف من مسار الملف. سيتم تعديل رمز PHP في المثال السابق قليلاً لتنزيل الملف من المسار المحدد. ال clearstatecache () يتم استخدام الوظيفة لمسح ذاكرة التخزين المؤقت التي تم تخزينها مسبقًا. يتم استخدام وسيطين في إقرا الملف() وظيفة.

download2.php


لو( ذهب (_ احصل عليه['طريق']))
{
// اقرأ عنوان url
$ url = _ احصل عليه['طريق']؛

// امسح ذاكرة التخزين المؤقت
clearstatcache ()؛

// تحقق من وجود مسار الملف أم لا
لو( الملف موجود ($ url)) {

// تحديد معلومات الرأس
رأس ('وصف المحتوى: نقل الملف')؛
رأس ('نوع المحتوى: تطبيق / ثماني دفق')؛
رأس ('ترتيب المحتوى: التعلق ؛ اسم الملف = '. الاسم الأساسي ($ url).'')؛
رأس ('طول المحتوى: ' . حجم الملف ($ url))؛
رأس (براغما: عامة)؛

// مسح المخزن المؤقت لإخراج النظام
دافق ()؛

// اقرأ حجم الملف
إقرا الملف ($ urlوحقيقية)؛

// إنهاء من البرنامج النصي
ال ()؛
}
آخر{
رما - طرد - قذف 'مسار الملف غير موجود.'؛
}
}
رما - طرد - قذف لم يتم تعريف مسار الملف.

؟>

انتاج |
بعد النقر على رابط تنزيل ملف PDF ، سيظهر الإخراج التالي.

فيديو تعليمي

استنتاج

قدمت هذه المقالة طريقة بسيطة لتنزيل أي ملف بالقوة باستخدام البرنامج النصي PHP ، لمساعدة القراء على إضافة ميزة التنزيل في البرنامج النصي الخاص بهم.