• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در ارسال فایل برای دانلود با php
#1
سلام خدمت دوستان گل

دوستان من فایل هایی که کاربرام آپلود میکنند رو در یک سرور دیگه به وسیله FTP اپلود میکنم منهتا فایل رو بدون پسوند اپلود میکنم.

موقع دانلود با کد زیر فایل رو به کاربر میفرستم اما فایل ناقص ارسال میشه !

کد پی‌اچ‌پی:
$filesize filesize($filepath);
                
header('Content-Description: File Transfer');
                
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($row['file_name']));
                
header('Content-Transfer-Encoding: binary');
                
header('Expires: 0');
                
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
                
header('Pragma: private');
                
header('Content-Length: ' $filesize);
                
ob_clean();
                
flush();
                
readfile($filepath);
                
                exit; 
همیشه برای یادگیری، موضوعاتی هست!

فرهاد حسن پور / بیرگیک

  پاسخ
تشکر شده توسط :
#2
فریم ورک codeigniterیه helper برای دانلود داره
اسم تابعش force_download بود فکر کنم
یه سرچی بزن تابعشو بکش بیرون استفاده کن

ایناهاش یه دستی بهش بکش
کد پی‌اچ‌پی:
function force_download($filename ''$data '')
    {
        if (
$filename == '' OR $data == '')
        {
            return 
FALSE;
        }

        
// Try to determine if the filename includes a file extension.
        // We need it in order to set the MIME type
        
if (FALSE === strpos($filename'.'))
        {
            return 
FALSE;
        }

        
// Grab the file extension
        
$x explode('.'$filename);
        
$extension end($x);

        
// Load the mime types
        
if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'))
        {
            include(
APPPATH.'config/'.ENVIRONMENT.'/mimes.php');
        }
        elseif (
is_file(APPPATH.'config/mimes.php'))
        {
            include(
APPPATH.'config/mimes.php');
        }

        
// Set a default mime if we can't find it
        
if ( ! isset($mimes[$extension]))
        {
            
$mime 'application/octet-stream';
        }
        else
        {
            
$mime = (is_array($mimes[$extension])) ? $mimes[$extension][0] : $mimes[$extension];
        }

        
// Generate the server headers
        
if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE") !== FALSE)
        {
            
header('Content-Type: "'.$mime.'"');
            
header('Content-Disposition: attachment; filename="'.$filename.'"');
            
header('Expires: 0');
            
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            
header("Content-Transfer-Encoding: binary");
            
header('Pragma: public');
            
header("Content-Length: ".strlen($data));
        }
        else
        {
            
header('Content-Type: "'.$mime.'"');
            
header('Content-Disposition: attachment; filename="'.$filename.'"');
            
header("Content-Transfer-Encoding: binary");
            
header('Expires: 0');
            
header('Pragma: no-cache');
            
header("Content-Length: ".strlen($data));
        }

        exit(
$data);
    } 
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : ayoubsys farhadhp
#3
ممنون آقا رضا Heart

مشکل از اینجا بود که فایل روی سرورم کامل اپلود نمیشد!‌Exclamation

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

الان بخوام قابلیت ایست و ادامه دانلود رو بهش اضافه کنم باید کار خاصی انجام بدم ؟

Heart
همیشه برای یادگیری، موضوعاتی هست!

فرهاد حسن پور / بیرگیک

  پاسخ
تشکر شده توسط :
#4
http://www.phpclasses.org/package/2221-P...pport.html
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : ayoubsys farhadhp


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان