فرض کنید که میخواهید یک سایت فروش موزیک یا ارسال فایل بسازید! بهطورمعمول وقتی میخواهید اجازۀ دانلود فایلی را به کاربر بدهید، آن فایل را دریکی از پوشههای واقع در دایرکتوری وب Apache قرار میدهید و مابقی کار را وب سرور برای شما انجام خواهد داد. کاربر روی لینک مستقیم فایل کلیک میکند و دانلود آغاز میشود.
ارسال با PHP
فرض کنید که میخواهید یک سایت فروش موزیک یا ارسال فایل بسازید! قطعاً لازم است قبل از اینکه امکان دانلود موزیکها برای کاربر فراهم شود، چک کنید که آیا کاربر در سایت ثبتنام کرده یا هزینۀ موزیک موردنظر را پرداخت کرده است یا خیر و مواردی ازایندست.
اگر فرض کنیم که در طرف سرور از PHP بهعنوان تأمینکنندۀ فایل برای کاربر استفاده میکنید، کدی شبیه این خواهید داشت:
به این مفهوم که PHP فایل را میخواند، header های مناسب را ایجاد کرده و درنهایت فایل را روی بافر خروجی ارسال میکند.
ارسال فایل با X-SendFile
بهتر نبود اگر به وب سرور میگفتیم که کدام فایل را باید ارسال کند و بقیۀ کارها رو خودش انجام میداد؟ خبر خوب این است که میتوانید این کار را با فعال کردن ماژول mod_xsendfile
بهراحتی انجام دهید.
نکتهای که بد نیست بدانید این است که این تکنیک از قابلیتهای موجود در Lighttp وام گرفتهشده است و اگر از NGinx استفاده میکنید باید از ورودی متفاوتی به نام
X-Accel-Redirect
بهره بگیرد.
نصب ماژول mode_xsendfile
بر روی سرویسدهندۀ Ubuntu به شکل زیر است:
پیکربندی ماژول بسیار ساده است. خطوط زیر را در انتهای فایل پیکربندی Apache وارد کنید:
بهمنظور عملیاتی شدن ماژول، سرویس Apache را یکبار خاموش و روشن کنید:
پس از فعال کردن ماژول mode_xsendfile
، با تنظیم ورودی X-SendFile
در بخش header
و ارسال آن، بقیه کارها را سرویسدهنده برای شما انجام خواهد داد:
دیدگاهتان را بنویسید