با سلام و عرض ادب و احترام خدمت تمام دوستان
بنده از هاست های دانلود استفاده نکرده ام اما برای یکی از پروژه هام نیاز هست که از این نوع هاست استفاده کنم.
من نیاز دارم که بتونم فایلی که در هاست دانلود قرار دادم رو به صورت غیرمستقیم دانلود کنم. یعنی کاربر نباید بتونه آدرس فایل رو در هاست دانلود متوجه بشه. به عنوان مثال در همین سایت راکت برای دانلود فایل های ویدئویی به صورت غیر مستقیم عمل میشه.
من روش دانلود غیر مستقیم در هاست های معمولی رو می دونم می خوام بدونم آیا از همین روش برای هاست دانلودی هم میشه استفاده کرد ؟
بنده کد زیر رو برای هاست های غیر دانلودی استفاده می کنم :
public function fileDownload($file_path, $case = 'download', $speed = 1024){
if(file_exists('.'.$file_path)){
$path_parts = pathinfo($file_path);
$file_name = $path_parts['basename'];
$file_ext = $path_parts['extension'];
$file_path = '.'.$file_path;
$file_size = filesize($file_path);
$file = @fopen($file_path, "rb");
if($file){
error_reporting(E_ALL & ~E_NOTICE);
header("Pragma: public");
header("Expires: -1");
header("Cache-Control: public, must-revalidate, post-check=0, pre-check=0");
switch($case){
case 'download':
header("Content-Disposition: attachment; filename=\"$file_name\"");
break;
case 'online':
header("X-Sendfile: $file_path");
break;
}
$ctype_default = "application/octet-stream";
$content_types = array(
"rar" => "application/rar",
"mp3" => "audio/mpeg",
"mp4" => "video/mp4"
);
$ctype = isset($content_types[$file_ext]) ? $content_types[$file_ext] : $ctype_default;
header("Content-Type: " . $ctype);
if(isset($_SERVER['HTTP_RANGE'])){
list($size_unit, $range_orig) = explode('=', $_SERVER['HTTP_RANGE'], 2);
if ($size_unit == 'bytes'){
list($range, $extra_ranges) = explode(',', $range_orig, 2);
}else{
$range = '';
header('HTTP/1.1 416 Requested Range Not Satisfiable');
exit;
}
}else{
$range = '';
}
list($seek_start, $seek_end) = explode('-', $range, 2);
$seek_end = (empty($seek_end)) ? ($file_size - 1) : min(abs(intval($seek_end)), ($file_size - 1));
$seek_start = (empty($seek_start) || $seek_end < abs(intval($seek_start))) ? 0 : max(abs(intval($seek_start)), 0);
if($seek_start > 0 || $seek_end < ($file_size - 1)){
header('HTTP/1.1 206 Partial Content');
header('Content-Range: bytes '.$seek_start.'-'.$seek_end.'/'.$file_size);
header('Content-Length: '.($seek_end - $seek_start + 1));
}else{
header("Content-Length: $file_size");
}
header('Accept-Ranges: bytes');
set_time_limit(0);
fseek($file, $seek_start);
ob_clean();
while(!feof($file) && ( connection_status() == 0)){
print(@fread($file, 1024 * $speed));
flush();
ob_flush();
}
@fclose($file);
exit;
}
else{
header("HTTP/1.0 500 Internal Server Error");
exit;
}
}else{
header("HTTP/1.0 404 Not Found");
exit;
}
}
اگر میشه از این کد استفاده کرد برای هاست دانلود من باید مقداری که در $file_path قرار می گیره رو به چه صورت بنویسم ؟
با تشکر ...
سلام مجدد خدمت دوستان و جناب مهندس موسوی
جناب موسوی مشکل دقیقا همینه که هاست های دانلود تا اونجا که من اطلاع دارم و تحیق کردم قابلیت اجرای اسکریپت رو ندارن و صرفا محلی برای نگهداری فایل هستند.
ما صرفا یک ساب دامین داریم که هاست دانلود رو به هاست اصلی خودمون وصل می کنیم .
جناب موسوی امکانش هست کمی بیشتر راهنمایی کنید .
با تشکر
شاید پاسخ شما همینجا باشد
ممنونم از راهنمایی هاتون مهندس جان ...
جناب موسوی ! برای یک سایت فروش فایل مثلا سایت راکت . چه هاستی رو پیشنهاد می کنید ؟
اصلا خود راکت از چه جور هاستی استفاده می کنه ؟ فکر می کنم شما از سرور مجازی یا اختصاصی استفاده می کنید.
ممنونم میشم بنده رو برای انتخاب یک هاست مناسب جهت استفاده برای یک سایت فروش فایل راهنمایی کنید .
با تشکر ...