تابع تشخیص فرمت فایل

phpweb

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

PHP:
$_FILES[src][type]

من دنبال یه تابع می گردم که بتونه یه خروجی شبیه به متغیر فوق ایجاد کنه. اگر پی اچ پی برای اینکار تابع آماده ای ارائه داده لطفا اسم تابع رو برام ارسال کنید.
 

Milad

Well-Known Member
برا فایل های رو سرور ؟

PHP:
<?php

echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir

?>
 

phpweb

Active Member
برا فایل های رو سرور ؟

PHP:
<?php

echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir

?>

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

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

دنبال توابع آماده می گردم.
 

meysam-fathi

Active Member
تابعی واسه درخواست شما وجود نداره. شما می تونید فایل های مورد نظر خودتونو در قالب یه آرایه داشته باشید و از اون استفاده کنید
PHP:
        $img_mimes = array(
                            'image/gif',
                            'image/jpeg',
                            'image/png',
                        );
 

phpweb

Active Member
تابعی واسه درخواست شما وجود نداره. شما می تونید فایل های مورد نظر خودتونو در قالب یه آرایه داشته باشید و از اون استفاده کنید
PHP:
        $img_mimes = array(
                            'image/gif',
                            'image/jpeg',
                            'image/png',
                        );

پی اچ پی توابع زیر رو برای این کار ارائه کرده. بنظرتون باید از این توابع استفاده کنم یا از توابعی که برنامه نویس ها نوشتن؟ کدومشون همه انواع فرمتهای فایلها رو تشخیص می دن؟

mime_content_type و fileinfo
 

meysam-fathi

Active Member
اگه صفحه ای خودتون لینک کردین رو مطالعه کرده باشین این دستور توصیه شده که استفاده نشه . نظر شخصی من اینه که یه آرایه از فایل تایپ هایی که لازم داری تهیه کن و از اون استفاده کن. مطمئن تره و دستتون باز تره، در ضمن تو چند تا فریم ورک هم من نگاه کردم همین جوری کار کردن
 

phpweb

Active Member
اگه صفحه ای خودتون لینک کردین رو مطالعه کرده باشین این دستور توصیه شده که استفاده نشه . نظر شخصی من اینه که یه آرایه از فایل تایپ هایی که لازم داری تهیه کن و از اون استفاده کن. مطمئن تره و دستتون باز تره، در ضمن تو چند تا فریم ورک هم من نگاه کردم همین جوری کار کردن


توصیه شده که از تابع fileinfoاستفاده کنیم. نگفتن که از تابع جدید هم استفاده نکنیم. نظر شما چیه؟
 

meysam-fathi

Active Member
یکی از مزیت های php همینه که دستتون رو باز میزاره. در این جور مواقع با هرکدام که راحت هستین کار کنین.
 

majid23_ab

New Member
تابع تعیین فرمت فایل

این تابع رو خودم برای تعیین فرمت فایل نوشتم:
PHP:
function file_type($file)
{
$type = array(

            'txt' => 'text/plain',
            'htm' => 'text/html',
            'html' => 'text/html',
            'php' => 'text/html',
            'css' => 'text/css',
            'js' => 'application/javascript',
            'json' => 'application/json',
            'xml' => 'application/xml',
            'swf' => 'application/x-shockwave-flash',
            'flv' => 'video/x-flv',

            // images
            'png' => 'image/png',
            'jpe' => 'image/jpeg',
            'jpeg' => 'image/jpeg',
            'jpg' => 'image/jpeg',
            'gif' => 'image/gif',
            'bmp' => 'image/bmp',
            'ico' => 'image/vnd.microsoft.icon',
            'tiff' => 'image/tiff',
            'tif' => 'image/tiff',
            'svg' => 'image/svg+xml',
            'svgz' => 'image/svg+xml',

            // archives
            'zip' => 'application/zip',
            'rar' => 'application/x-rar-compressed',
            'exe' => 'application/x-msdownload',
            'msi' => 'application/x-msdownload',
            'cab' => 'application/vnd.ms-cab-compressed',

            // audio/video
            'mp3' => 'audio/mpeg',
            'qt' => 'video/quicktime',
            'mov' => 'video/quicktime',

            // adobe
            'pdf' => 'application/pdf',
            'psd' => 'image/vnd.adobe.photoshop',
            'ai' => 'application/postscript',
            'eps' => 'application/postscript',
            'ps' => 'application/postscript',

            // ms office
            'doc' => 'application/msword',
            'rtf' => 'application/rtf',
            'xls' => 'application/vnd.ms-excel',
            'ppt' => 'application/vnd.ms-powerpoint',

            // open office
            'odt' => 'application/vnd.oasis.opendocument.text',
            'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
        );
foreach($type as $key => $value)
 {
  if(substr(strrchr($file, '.'), 1) == $key)
  {
   echo $value;
  }
 }
}
این تابع هم برای تعیین مشخصات عکس ها وجود دارد:
PHP:
$i = getimagesize("image");
image
آدرس و نام عکس و
$i
آرایه ای از مشخصات عکس مانند فرمت و طول و عرض عکس می باشد
با تشکر
مجید عبداللهی
مدیر سایت:
 
آخرین ویرایش:

phpweb

Active Member
این تابع رو خودم برای تعیین فرمت فایل نوشتم:
PHP:
function file_type($file)
{
$type = array(

            'txt' => 'text/plain',
            'htm' => 'text/html',
            'html' => 'text/html',
            'php' => 'text/html',
            'css' => 'text/css',
            'js' => 'application/javascript',
            'json' => 'application/json',
            'xml' => 'application/xml',
            'swf' => 'application/x-shockwave-flash',
            'flv' => 'video/x-flv',

            // images
            'png' => 'image/png',
            'jpe' => 'image/jpeg',
            'jpeg' => 'image/jpeg',
            'jpg' => 'image/jpeg',
            'gif' => 'image/gif',
            'bmp' => 'image/bmp',
            'ico' => 'image/vnd.microsoft.icon',
            'tiff' => 'image/tiff',
            'tif' => 'image/tiff',
            'svg' => 'image/svg+xml',
            'svgz' => 'image/svg+xml',

            // archives
            'zip' => 'application/zip',
            'rar' => 'application/x-rar-compressed',
            'exe' => 'application/x-msdownload',
            'msi' => 'application/x-msdownload',
            'cab' => 'application/vnd.ms-cab-compressed',

            // audio/video
            'mp3' => 'audio/mpeg',
            'qt' => 'video/quicktime',
            'mov' => 'video/quicktime',

            // adobe
            'pdf' => 'application/pdf',
            'psd' => 'image/vnd.adobe.photoshop',
            'ai' => 'application/postscript',
            'eps' => 'application/postscript',
            'ps' => 'application/postscript',

            // ms office
            'doc' => 'application/msword',
            'rtf' => 'application/rtf',
            'xls' => 'application/vnd.ms-excel',
            'ppt' => 'application/vnd.ms-powerpoint',

            // open office
            'odt' => 'application/vnd.oasis.opendocument.text',
            'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
        );
foreach($type as $key => $value)
 {
  if(substr(strrchr($file, '.'), 1) == $key)
  {
   echo $value;
  }
 }
}
با تشکر
مجید عبداللهی
تبلیغات ممنوع ! ویرایش شد !
این تابع همه فرمتها رو ساپورت می کنه؟ در صورت برخورد با فرمتهای ناشناخته چطور عمل می کنه و هدرها رو به چه شکل ارسال می کنه؟
 
آخرین ویرایش توسط مدیر:

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

بالا