آفلاین
user-avatar

دانلود غیر مستقیم فایل در php

PHP -
1 سال پیش
توسط Matthew آپدیت شد
آفلاین
user-avatar
همایون رضایی ( 482 تجربه )
3 سال پیش

با سلام و وقت بخیر خدمت تمام دوستان

دوستان کسی می دونه چطور میشه در php ، فایل ها رو به صورت کاملا حرفه ای و با امنیت بالا به صورت غیر مستقیم دانلود کرد ؟

به عنوان مثال : در وب سایت راکت ، چطور فایل ها برای دانلود قرار داده میشن . به طوری که صرفا با عضویت ویژه یا خرید دوره ها قابلیت دانلود پیدا می کنن.

توی اینترنت مطالبی در این باره خوندم اما مطلب به درد به خوری ندیدم. اگه دوستان لطف کنن و منبعی معرفی کنن و یا سورس کدی برای این کار قرار بدن ممنون میشم.

با تشکر ...

آنلاین
user-avatar
حسام موسوی ( 403926 تجربه )
3 سال پیش
تخصص : طراح و برنامه نویس

به سادگی با تغییر دادن بعضی از header ها میشه اینکارو انجام داد کد زیر یک نمونه کد از این مسئله اس

<?php
$fakeFileName= "fakeFileName.zip";
$realFileName = "realFileName.zip";

$file = "downloadFolder/".$realFileName;
$fp = fopen($file, 'rb');

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$fakeFileName");
header("Content-Length: " . filesize($file));
fpassthru($fp);
?>

البته خودم تستش نکردم اما با تغییر دقیقا همین header ها چنین سیستمی رو پیاده سازی کردم اما کد خودم بدرد مثال زدن نمیخورد چون یکم داستانش
پیشرفته بود بنابراین این کد ساده رو براتون قرار دادم

آفلاین
user-avatar
همایون رضایی ( 482 تجربه )
3 سال پیش

سلام مجدد و عرض ادب و احترام

قبل از هر چیزی ، کمال تشکر و قدر دانی رو از جناب موسوی بابت راهنمایی های لازم دارم.

جناب موسوی من کدی که در لینک زیر قرار دارد رو نوشتم . اما مشکلی که دارم اینه که موقعی که فایل دانلود میشه ، فایل خراب دانلود میشه . یعنی فایل باز نمیشه . ظاهرا باید درست کار کنه و همه چیز باید اوکی باشه . به نظر شما مشکل چیه ؟

به نظر شما، این کدها به اندازه کافی برای استفاده در یک پروژه ی حرفه ای کامل هستند ؟ و امنیت لازم رو داره ؟ اگر به اندازه کافی حرفه ای نیست به نظر شما چه مسائلی رو در این کد بهش توجه نکرده ام ؟

لینک دانلود فایل :
http://s8.picofile.com/file/8313749068/downloadFile.zip.html

آفلاین
user-avatar
masoud net ( 7220 تجربه )
2 سال پیش

این هدرها چی هستند میشه بیشتر توضیح بدید

آفلاین
user-avatar
Mohsen Hassanshahi ( 3134 تجربه )
2 سال پیش
تخصص : برنامه نویس
آفلاین
user-avatar
ناصر احدی ( 70 تجربه )
1 سال پیش
تخصص : برنامه نویسی سیستم های مانیتورینگ و کنترل از راه دور

سلام ببخشید جناب مهندس موسوی
در کد
$fp = fopen($file, 'rb');
کار b چیست؟

آفلاین
user-avatar
Matthew ( 31450 تجربه )
1 سال پیش
تخصص : ساده

@hesammousavi
الان به کمک این کد میشه لینک هم دانلود کرد یا نه

برای ارسال پاسخ باید وارد سایت شوید