PDA

View Full Version : نحوه دسترسی به فایلی که در ساب دامین قرار دارد



php_love
پنج شنبه 23 شهریور 1391, 21:17 عصر
سلام دوستان

از دامین اصلی می خوام , فایلی که بر روی ساب دامین قرار دارد رو توسط دستور fopen باز کنم . اما این دسترسی امکان نداره , حتی permission پوشه مورد نظر در ساب دامین رو در حالت read - write - execute قرار دادم .

چطور می تونم از دامین اصلی به فایلی که در ساب دامین قرار داره دسترسی داشته باشم .

ممون

ayub_coder
جمعه 24 شهریور 1391, 10:39 صبح
آیا مقصد ساب دومین رو همین سرور خودت هست یا در سرور دیگر؟ اگر روی سرور خودت هست که نیاز به ساب دومین نداری و فقط باید دایرکتوری مورد نظرت رو بدونی چیه و باهاش مثل فایل معمولی که درون دایرکتوری قرار داره برخورد کنی

php_love
جمعه 24 شهریور 1391, 13:22 عصر
IP سرور دیگه ای تو ساب دامین ست شده , مشکل همین جاست , در غیر این صورت به قول شما نیازی به این بحث نبود

php_love
شنبه 25 شهریور 1391, 02:25 صبح
یعنی هیچ راهی وجود نداره فایل که در هاست دیگه ای قرار داره توسط دستور fopen بازش کرد ؟

mtchabok
شنبه 25 شهریور 1391, 10:59 صبح
راهش اینه که allow_url_fopen رو در کانفیگ php روشن کنید .

ini_set('allow_url_fopen', true)
نکته اینه که اگه دسترسی فایل در ساب دامین عمومی نباشه نمی تونید از این طریق فایل رو بگیرید . بنابراین پرمیشن فایل رو درست کنید .

php_love
شنبه 25 شهریور 1391, 16:28 عصر
قربانی این تنظیمی که می گید رو باید کجا لحاظ کنم . کد زیر هم پیغام not found رو میده


//my site is http://example.com
$file_name = "http://dl.example.com/files/test.rar";
ini_set('allow_url_fopen', true);
if(file_exists($file_name))
{
$file_size = filesize($file_name);
$fh = fopen($file_name, "r");
header("Content-Disposition: attachment; filename=".$file_name);
}
else
{
echo "File Not Found !!";
}

Unique
شنبه 25 شهریور 1391, 19:19 عصر
اگه فایل عمومی هستش اصلا نیاز به این کار هانیست و فقط کافیه کاربر را redirect کنید به اون فایل ! اگه باید دسترسی ها بررسی بشوند و با header ارسال بشن و url مورد نظر شما در هاست شما نیست و توی یک هاست دیگست (چون اگه توی هاست خودتون باشه که اصلا نیاز به این کارا نیست و باید مسیر را بدین) با تابع زیر فایل را دانلود کنین :


function downloadFile ($url, $path) {

$newfname = $path;
$file = fopen ($url, "rb");
if ($file) {
$newf = fopen ($newfname, "wb");

if ($newf)
while(!feof($file)) {
fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
}
}

if ($file) {
fclose($file);
}

if ($newf) {
fclose($newf);
}
}



حالا با readfile از هاست خودتون برای کاربرتون بفرستین !
اما در کل کار بی معنی هستش و بهتره redirect بشه ! معمولا حساسیت روی فایل هایی هست که توی هاست خودمون هستند !

php_love
دوشنبه 20 آذر 1391, 00:31 صبح
اما در کل کار بی معنی هستش و بهتره redirect بشه ! معمولا حساسیت روی فایل هایی هست که توی هاست خودمون هستند !

حساسیت من به این دلیله که قصد دارم دسترسی به فایلهای هاست دانلودم , تنها برای اعضای ویژه محیا باشه , حالا اگه شما راه بهتری سراغ دارید خوشحال میشم توصیه کنید . در اسکریپتی که بنده دارم اومده با تابع header به فایلها اشاره کرده . تنها راهی که باقی موند همین راهی هست که شما توصیه کردید که هنوز تست نکردم , امیدوارم مشکلم رو حل کنه .

یه سئوال :
حجم فایلهایی که وجود دارد خیلی بالاست در حد 400 یا 500 مگابایته , آیا این تابع و کلا این پیشنهاد روش معقولانه ایست ؟؟

لینک زیر اسکریپتی است که بنده استفاده می کنم , کلا خوبه , شما هم نگاهی بندازید اگه مسئله ای هست بفرمائید .

http://w3shaman.com/comment/190