تشخیص فرمت انواع فایلها

phpweb

Active Member
من یه اسکریپت آپلود فایل نوشتم، می خوام بعد از آپلود هر فایل فرمت اون فایل رو تشخیص بدم و بعد به هر فرمت یه تصویر اختصاص بدم تا کاربر موقع نمایش فایلها با دیدن تصویر فایل، فرمت اون فایل رو متوجه بشه.

مثلا اگه فایل اپلود شده یه فایل پی دی اف بود، آیپون پی دی اف رو به اون فایل اختصاص بدم.

لطفا یه منبع معرفی کنید که فرمتهای همه فایلهای کامپیوتری رو نمایش می ده.
 

greencat

Member
سلام
شما اسم فایل رو بر اساس "." (dot - نقطه) تکه تکه کنید بعدش هر کدوم رو توی 1 خونه از ارایه بریزید حالا اخرین خونه از ارایه میشه پسوند فایلتون که دیگه با یه دستور switch می‌تونید هر عکسی رو به هر پسوندی نسبت بدید و نمایش بدید البته برای رعایت مسائل امنیتی از خود تابع‌های php هم بعدش برای چک کردن نوع محتویات پسوند و درستیش استفاده کنید.
موفق باشید.
 

phpweb

Active Member
سلام
شما اسم فایل رو بر اساس "." (dot - نقطه) تکه تکه کنید بعدش هر کدوم رو توی 1 خونه از ارایه بریزید حالا اخرین خونه از ارایه میشه پسوند فایلتون که دیگه با یه دستور switch می‌تونید هر عکسی رو به هر پسوندی نسبت بدید و نمایش بدید البته برای رعایت مسائل امنیتی از خود تابع‌های php هم بعدش برای چک کردن نوع محتویات پسوند و درستیش استفاده کنید.
موفق باشید.

لطفا اسم توابع امنیتی رو بنویسید.

اگه امکانش هست اسم همه توابع رو قرار بدید.
 

ARMIN3D.NET

New Member
دوست عزیز ، شما میتونید از کلاس زیر استفاده کنید :


PHP:
//////////////////////////////
//          Upload          //       
//////////////////////////////
class Upload {

    var $Fieldname;
    var $type;
    var $upload_dir;
    var $filename;

    function __construct( $n_Fieldname, $n_type, $n_upload_dir )
    {
    
        $this->Fieldname = $n_Fieldname;
        $this->type = $n_type;
        $this->upload_dir = $n_upload_dir;
        $this->uploaded();    
    
    }
    
    
    
    function uploaded(){
    
        if( $_FILES[$this->Fieldname]["type"] == $this->type ){
    
            if( $_FILES[$this->Fieldname]["error"] == 0){
            
                echo "<b>File name: </b>" . $_FILES[$this->Fieldname]["name"] . "<br />";
                echo "<b>File type: </b>" . $_FILES[$this->Fieldname]["type"] . "<br />";
                echo "<b>File size: </b>" . (($_FILES[$this->Fieldname]["size"] / 1024)/1024) . " Mb<br />";
                echo "<b>File Tmp: </b>" . $_FILES[$this->Fieldname]["tmp_name"] . "<br />";
                
                if(move_uploaded_file( $_FILES[$this->Fieldname]["tmp_name"], $this->upload_dir . $_FILES[$this->Fieldname]["name"])){
                
                    echo "Uploaded..";
                
                }
                
            } else {
            
                echo "Error: " . $_FILES[$this->Fieldname]["error"] . "<br />";
            
            }
            
        } else {
        
            echo "Wrong file type..";
        
        }
    
    }
    

}

برای تشخیص فرمت فایل هم :

PHP:
//////////////////////////////
//     Remove_Extension     //       
//////////////////////////////
function  Remove_Extension( $Filename )
{
$Extension = strrchr( $Filename , "." );
if ( $Extension = '.php' or '.cgi' or '.asp' or '.aspx'  or '.js'  or '.htacess' )
{
$Filename  = substr ( $Filename , 0  , -strlen ( $Extension ) ) ;
}
return $Filename;
}
 

phpweb

Active Member
دوست عزیز ، شما میتونید از کلاس زیر استفاده کنید :


PHP:
//////////////////////////////
//          upload          //       
//////////////////////////////
class upload {

    var $fieldname;
    var $type;
    var $upload_dir;
    var $filename;

    function __construct( $n_fieldname, $n_type, $n_upload_dir )
    {
    
        $this->fieldname = $n_fieldname;
        $this->type = $n_type;
        $this->upload_dir = $n_upload_dir;
        $this->uploaded();    
    
    }
    
    
    
    function uploaded(){
    
        if( $_files[$this->fieldname]["type"] == $this->type ){
    
            if( $_files[$this->fieldname]["error"] == 0){
            
                echo "<b>file name: </b>" . $_files[$this->fieldname]["name"] . "<br />";
                echo "<b>file type: </b>" . $_files[$this->fieldname]["type"] . "<br />";
                echo "<b>file size: </b>" . (($_files[$this->fieldname]["size"] / 1024)/1024) . " mb<br />";
                echo "<b>file tmp: </b>" . $_files[$this->fieldname]["tmp_name"] . "<br />";
                
                if(move_uploaded_file( $_files[$this->fieldname]["tmp_name"], $this->upload_dir . $_files[$this->fieldname]["name"])){
                
                    echo "uploaded..";
                
                }
                
            } else {
            
                echo "error: " . $_files[$this->fieldname]["error"] . "<br />";
            
            }
            
        } else {
        
            echo "wrong file type..";
        
        }
    
    }
    

}
برای تشخیص فرمت فایل هم :

PHP:
//////////////////////////////
//     remove_extension     //       
//////////////////////////////
function  remove_extension( $filename )
{
$extension = strrchr( $filename , "." );
if ( $extension = '.php' or '.cgi' or '.asp' or '.aspx'  or '.js'  or '.htacess' )
{
$filename  = substr ( $filename , 0  , -strlen ( $extension ) ) ;
}
return $filename;
}

من دنبال یه روش می گردم که کاربر بتونه فایل رو بدون مشکل دانلود کنه.

همونطور که می دونید برای دانلود، باید نوع فایل رو تشخیص بدیم و بعد با ارسال یه هدر فرمت فایل رو به مرورگر اعلام کنیم.

در مورد هدر ها چه پیشنهادی دارید؟
 

جدیدترین ارسال ها

بالا