GORAGOD.com

freelance, web developer, web designer, hosting, domain name

อัพโหลด+ดวาน์โหลดได้ แต่เปิดไฟล์ไม่ได้ครับ รบกวนหน่อยครับ

อัพโหลด+ดวาน์โหลดได้ แต่เปิดไฟล์ไม่ได้ครับ รบกวนหน่อยครับ

ตัวโค๊ดเนี้ยถ้าผม ระบุชื่อไฟล์โดยตรงมันจะ ดาวน์โหลดมาได้ และ เปิดไฟล์ได้ปกติครับ

    $download_path = $_SERVER['DOCUMENT_ROOT'] . "/domain.com/file_3gp";
    $filename="VC07RSHUZW.3gp";
   
    //$filename = $_GET['filename'];
   
    // Detect missing filename
    if(!$filename) die("I'm sorry, you must specify a file name to download.");
   
    // Make sure we can't download files above the current directory location.
    if(eregi("\.\.", $filename)) die("I'm sorry, you may not download that file.");
    $file = str_replace("..", "", $filename);
   
    // Make sure we can't download .ht control files.
    if(eregi("\.ht.+", $filename)) die("I'm sorry, you may not download that file.");
   
    // Combine the download path and the filename to create the full path to the file.
    $file = "$download_path/$file";
   
    // Test to ensure that the file exists.
    if(!file_exists($file)) die("I'm sorry, the file doesn't seem to exist. $file");
   
    // Extract the type of file which will be sent to the browser as a header
    $type = filetype($file);

    // Get a date and timestamp
    $today = date("F j, Y, g:i a");
    $time = time();

    // Send file headers
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);   
    header("Content-type: $type");
    header("Content-Disposition: attachment;filename=$filename");
    header('Pragma: no-cache');
    header('Expires: 0');

    // Send the file contents.
    readfile($file);


แต่ถ้าผมนำมาติดต่อกับ ฐานข้อมูล มันก็ดาวน์โหลดได้ครับ แต่เปิดไฟล์ำไม่ได้ครับ


        $id=$_GET['id'];
        $sql="select * from tb_clips where id_clip='$id'";                   
        $result=mysql_db_query($dbname,$sql);
        $num_rows=mysql_num_rows($result);
        $record=mysql_fetch_assoc($result);

        $filename="$record[name_clip]";
        $download_path = $_SERVER['DOCUMENT_ROOT'] . "/
domain.com/file_$record[type_clip]";
       
   
   
    // Detect missing filename
    if(!$filename) die("I'm sorry, you must specify a file name to download.");
   
    // Make sure we can't download files above the current directory location.
    if(eregi("\.\.", $filename)) die("I'm sorry, you may not download that file.");
    $file = str_replace("..", "", $filename);
   
    // Make sure we can't download .ht control files.
    if(eregi("\.ht.+", $filename)) die("I'm sorry, you may not download that file.");
   
    // Combine the download path and the filename to create the full path to the file.
    $file = "$download_path/$file";
   
    // Test to ensure that the file exists.
    if(!file_exists($file)) die("I'm sorry, the file doesn't seem to exist. $file");
   
    // Extract the type of file which will be sent to the browser as a header
    $type = filetype($file);

    // Get a date and timestamp
    $today = date("F j, Y, g:i a");
    $time = time();

    // Send file headers
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: post-check=0, pre-check=0", false);   
    header("Content-type: $type");
    header("Content-Disposition: attachment;filename=$filename");
    header('Pragma: no-cache');
    header('Expires: 0');

    // Send the file contents.
    readfile($file);


รบกวนท่านใดสามารถ โปรดชี้แนะด้วยครับ

** ผมลองใช้ Code ตาม บทความในนี้แล้ว ก็เป้ยปัญหาแบบเดีญวกัน คือ โหลดได้ แต่เปิดไม่ได้ครับ

ขอบคุณทึกท่านมากๆ ครับ
03 เม.ย. 2553 3 3,923

**เข้ามาธิบายอีกนิด ที่ผมใช้ โดค๊ดนี้ เพราะไม่อยากให้ ผู้ใช้รู้ ว่า การดาวน์โหลด เนี่ยไฟล์ ถูกเก็บไว้ไหน และ แต่ละไฟล์ชื่อไฟล์ว่าอะไร ประมาณเนี้ยครับ
#1

เท่าที่เคยลอง ก็ไม่พบปัญหานะ

ลองทดสอบโดยการใช้ไฟล์ขนาดเล็กลง ดูครับ ไฟล์อาจดาวน์โหลดไม่สำเร็จ

ถ้าจำเป็นก็อาจจะต้องตรวจสอบไฟล์ดูละครับ ว่ามันเกิดอะไรขึ้น (เปรียบเทียบไฟล์ที่ดาวน์โหลดได้กับไฟล์ต้นฉบับ ว่าม ันมีอะไรที่ผิดพลาด)
#2

อ่า..ได้แล้วครับนั่งงม อยู่ตั้งนาน

ติดปัญหา ไฟล์ connect db , config ที่ include มาครับ

เส้นผมบังกะบาลจิงๆเรา 

ขอบคุณหลายๆ คับ
#3
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^