View Full Version : سوال: راه حل برای مخفی نگه داشتم مسیر واقعی فایل
<body>
چهارشنبه 09 بهمن 1387, 14:17 عصر
سلام
دوستان میشه لطف کنید و راحی برای مخفی نگه داشتن مسیر فایلهایی که برای دانلود در سایت قرار میدهیم معرفی کنید .
مثلا مسیر کاملا مخفی باشه و لی به راحتی کاربر فال رو دانلود کنه
sepehrmm
چهارشنبه 09 بهمن 1387, 18:09 عصر
میتونی تو دیتا بیس مسیر فایل اصلی و یک کد مخصوص اون فایل رو ذخیره کنی مثلا این مسیر فایله : www.example.com/files/mesal.rar و این هم کد فایل : 561289 حالا کافیه لینک به فایل رو اینجوری درست کنی :
www.example.com/download.php?id=561289
تو این فایل هم با کوئری از دیتابیس مسیر اصلی فایل رو بگیر و با استفاده از دستورات HEADER دیالوگ ذخیره کردن فایل رو برای کاربر نمایش بده مثلا :
<?php
//The location of the image.
$path = "images/winter.jpg";
try {
if (is_file ($path)){
if ($file = fopen($path, 'rb')) {
while(!feof($file) and (connection_status()==0)) {
$f .= fread($file, 1024*8);
}
fclose($file);
}
//Use the header function to output an image of .jpg.
$outputname = "myimage";
header ("Content-type: image/jpeg");
//This will force a download.
header("Content-disposition: attachment; filename=".$outputname.".jpg");
print $f;
} else {
throw new exception ("Sorry, file path is not valid.");
}
} catch (exception $e){
echo $e->getmessage();
}
narsic
پنج شنبه 10 بهمن 1387, 01:33 صبح
با سلام
البته توضیحی که دوستمون دادن برای فایلهای تصویری بود jpg ها که شما باید متناسب با نیازتون تغیرش بدید .
موفق باشید
<body>
پنج شنبه 10 بهمن 1387, 10:00 صبح
آقا ممنون خوبشد گفتین وگر نه من کلی گیج میزدم :خجالت:
برای فایلهی مختلف چی؟
مشه پسون فایل همونی باشه که کاربر درخواست میده ؟
مثلا یه جا فایل exe هست و جایی دیگه rar این رو باید چیکار کرد ؟
sepehrmm
پنج شنبه 10 بهمن 1387, 14:25 عصر
با سلام
البته توضیحی که دوستمون دادن برای فایلهای تصویری بود jpg ها که شما باید متناسب با نیازتون تغیرش بدید .
موفق باشید
برای فایلهی مختلف چی؟
مشه پسون فایل همونی باشه که کاربر درخواست میده ؟
مثلا یه جا فایل exe هست و جایی دیگه rar این رو باید چیکار کرد ؟
از ایجا میتونی تمام نوع های تعریف شده رو ببینی :
http://en.wikipedia.org/wiki/Internet_media_type
ولی
کافیه Content-type رو application/octet-stream تعریف کنی:
header ("Content-type: application/octet-stream");
که برای هر نوع فایلی جواب میده ( چه اونایی که تو لیست بالا هستن چه هر نوع فایل دیگه ای) و پسوندو میتونی هر چی که میخوای بدی یعنی میتونی نوع رو jpg تعریف کنی :
header ("Content-type: image/jpeg");
ولی وقتی دیالوگ ذخیره کردن باز میشه rar نشون داده بشه :
header("Content-disposition: attachment; filename=".$outputname.".rar");
که البته کاربر در باز کردن فایل دچار مشکل میشه !
امیدوارم کامل توضیح داده باشم!:لبخند:
sepehrmm
پنج شنبه 10 بهمن 1387, 14:41 عصر
مثلا یه جا فایل exe هست و جایی دیگه rar این رو باید چیکار کرد ؟
در این مورد باید از روی مسیر فایل پسوند فایل رو به دست بیاری که با استفاده از تابع substr یا preg_split میتونی اینکارو بکنی ، مثال برای substr
$filetype=substr($path,strlen($path)-4);
تو کد بالا اگر عدد 4 جواب نداد 3 و 5 رو تست کن ، تا دقیقا 3 کارکتر آخر مسیر فایل که همون پسوند فایل هست رو بدست بیاری:لبخندساده:
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.