20 มิถุนายน 2555

การอับโหลด-ดาวน์โหลดไฟล์ขึ้นเว็บเป็นภาษาไทย

//การอับโหลดใช้ฟังก์ชั่น random แล้วเปลี่ยนชื่อไฟล์

function getfiletype($myFileName)

{

        $myFileType=strchr(substr($myFileName,-5, 5),"."); //ค้นหาจุด . ว่ามีอยู่หรือไม่ ถอยหลัง 5 เผื่อ .xlsx และ ด้วยครับ .docx

        $myFileType=str_replace(".","",$myFileType); //str_replace(ค้นหา,แทนที่ด้วย,ข้อความต้นฉบับ,จำนวนครั้ง) เอาจุดออกด้วยเลยจะได้ใช้ง่าย ๆ
        $myFileType=strtolower($myFileType);//ทำให้เป็นตัวพิมพ์เล็กทั้งหมดจะได้เช็คง่ายๆ
        return $myFileType;

}

function getfilename($myFileName)

{//ต้องเรียกใช้ getfiletype ด้วยเพื่อเอามานับจำนวนสตริงข้างหลัง

    $myFileNameOnly=substr($myFileName,0,strlen($myFileName)-strlen(getfiletype($myFileName))-1);

    return $myFileNameOnly;

}



            $thai_filename="ชื่อไฟล์ภาษาไทย";
            $file=$upload_path.'/'.$file;
            if (file_exists($file)) {
                header('Content-Description: File Transfer');
                header('Content-Type: application/octet-stream');

                //header('Content-Disposition: attachment; filename='.basename($file)); //ใช้ชื่อไฟล์จริงที่ถูก Random แล้ว
                //header('Content-Disposition: attachment; filename=ทดสอบ'.'.'.getfiletype($file));
                header('Content-Disposition: attachment; filename='.$thai_filename.'.'.getfiletype($file));
                header('Content-Transfer-Encoding: binary');
                header('Expires: 0');
                header('Cache-Control: must-revalidate');
                header('Pragma: public');
                header('Content-Length: ' . filesize($file));
                ob_clean();//Clean Header Befor Download File
                flush();
                readfile($file);
               
                if ($_SESSION['username']==$to_member)
                    {
                    $Udp=mysql_query("UPDATE m_dowlnoad SET download_count=".($download_count+1)." WHERE id='".$_GET['id']."'");
                    }       
                exit;
            }
            else
            {
            $Udp=mysql_query("UPDATE m_dowlnoad SET file_title='Err: File Not Found ' WHERE id='".$_GET['id']."'");
            echo '



ผิดพลาด : ไม่พบไฟล์ที่ดาวน์โหลด [คลิกที่นี่เพื่อกลับสู่หน้าหลัก]
';
            }
           
           

ไม่มีความคิดเห็น: