نمایش نتایج 1 تا 2 از 2

نام تاپیک: ایجاد لینک دانلود فایل با قابلیت resumable

  1. #1
    کاربر دائمی آواتار mojtabadj
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    251

    ایجاد لینک دانلود فایل با قابلیت resumable

    سلام دوستان

    من از کد زیر بابت دانلود استفاده کردم دانلود میشه و مشکل داره باز نمیکنه
    اینو گزاشتم تو View


    @ini_set('error_reporting', E_ALL & ~ E_NOTICE);


    //- turn off compression on the server
    @apache_setenv('no-gzip', 1);
    @ini_set('zlib.output_compression', 'Off');

    if(!isset($_REQUEST['file']) || empty($_REQUEST['file']))
    {
    header("HTTP/1.0 400 Bad Request");
    exit;
    }


    $file_path = $_REQUEST['file'];
    $path_parts = pathinfo($file_path);
    $file_name = $path_parts['basename'];
    $file_ext = $path_parts['extension'];
    $file_path = 'myfiles/' . $file_name;

    // allow a file to be streamed instead of sent as an attachment
    $is_attachment = isset($_REQUEST['stream']) ? false : true;

    // make sure the file exists
    if (is_file($file_path))
    {
    $file_size = filesize($file_path);
    $file = @fopen($file_path,"rb");
    if ($file)
    {
    // set the headers, prevent caching
    header("Pragma: public");
    header("Expires: -1");
    header("Cache-Control: public, must-revalidate, post-check=0, pre-check=0");
    header("Content-Disposition: attachment; filename=\"$file_name\"");

    // set appropriate headers for attachment or streamed file
    if ($is_attachment) {
    header("Content-Disposition: attachment; filename=\"$file_name\"");
    }
    else {
    header('Content-Disposition: inline;');
    header('Content-Transfer-Encoding: binary');
    }

    // set the mime type based on extension, add yours if needed.
    $ctype_default = "application/octet-stream";
    $content_types = array(
    "exe" => "application/octet-stream",
    "zip" => "application/zip",
    "mp3" => "audio/mpeg",
    "mpg" => "video/mpeg",
    "avi" => "video/x-msvideo",
    );
    $ctype = isset($content_types[$file_ext]) ? $content_types[$file_ext] : $ctype_default;
    header("Content-Type: " . $ctype);

    //check if http_range is sent by browser (or download manager)
    if(isset($_SERVER['HTTP_RANGE']))
    {
    list($size_unit, $range_orig) = explode('=', $_SERVER['HTTP_RANGE'], 2);
    if ($size_unit == 'bytes')
    {
    //multiple ranges could be specified at the same time, but for simplicity only serve the first range
    //http://tools.ietf.org/id/draft-ietf-http-range-retrieval-00.txt
    list($range, $extra_ranges) = explode(',', $range_orig, 2);
    }
    else
    {
    $range = '';
    header('HTTP/1.1 416 Requested Range Not Satisfiable');
    exit;
    }
    }
    else
    {
    $range = '';
    }

    //figure out download piece from range (if set)
    list($seek_start, $seek_end) = explode('-', $range, 2);

    //set start and end based on range (if set), else set defaults
    //also check for invalid ranges.
    $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);

    //Only send partial content header if downloading a piece of the file (IE workaround)
    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);

    while(!feof($file))
    {
    print(@fread($file, 1024*8));
    ob_flush();
    flush();
    if (connection_status()!=0)
    {
    @fclose($file);
    exit;
    }
    }

    // file save was a success
    @fclose($file);
    exit;
    }
    else
    {
    // file couldn't be opened
    header("HTTP/1.0 500 Internal Server Error");
    exit;
    }
    }
    else
    {
    // file does not exist
    header("HTTP/1.0 404 Not Found");
    exit;
    }

    آخرین ویرایش به وسیله mojtabadj : دوشنبه 15 تیر 1394 در 07:00 صبح

  2. #2

    نقل قول: ایجاد لینک دانلود فایل با قابلیت resumable

    قابل خواندن نیست قاطی پاتی شده برا من

تاپیک های مشابه

  1. ایجاد لینک دانلود برای فایل mp4
    نوشته شده توسط soroush.elec در بخش PHP
    پاسخ: 0
    آخرین پست: شنبه 07 بهمن 1391, 20:06 عصر
  2. دانلود فایل با قابلیت Resume
    نوشته شده توسط mahdi_negahi در بخش ASP.NET Web Forms
    پاسخ: 22
    آخرین پست: دوشنبه 08 آبان 1391, 02:57 صبح
  3. سوال: دانلود فایل با قابلیت Resume
    نوشته شده توسط N30TheM4TRIX در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 1
    آخرین پست: سه شنبه 03 مرداد 1391, 17:55 عصر
  4. پاسخ: 0
    آخرین پست: چهارشنبه 02 آذر 1390, 02:41 صبح
  5. ایجاد لینک برا فایل آپلود شده
    نوشته شده توسط yavari در بخش ASP.NET Web Forms
    پاسخ: 10
    آخرین پست: شنبه 06 خرداد 1385, 05:57 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •