SORU
8 AĞUSTOS 2011, PAZARTESİ


.rar, .zip, MIME Tipi dosyaları

Basit bir php yükleme komut dosyası geliştiriyorum, ve kullanıcılar sadece ZİP ve RAR dosyalarını yükleyebilirsiniz.

$_FILES[x][type] kontrol etmek için kullanmalıyım MIME türleri ne? (tam listesi lütfen)

Teşekkür ederim..

CEVAP
11 AĞUSTOS 2011, PERŞEMBE


Freedompeace gelen cevap:

.rar    application/x-rar-compressed, application/octet-stream
.zip    application/zip, application/octet-stream

Dosya adı çok üzerinde bir kontrol yaparım. Eğer dosya bir RAR olup olmadığını kontrol edebilirsiniz veya dosya ZİP. Hızlı komut satırı uygulaması oluşturarak test ettim.

<?php

if (isRarOrZip($argv[1])) {
    echo 'It is probably a RAR or ZIP file.';
} else {
    echo 'It is probably not a RAR or ZIP file.';
}

function isRarOrZip($file) {
    // get the first 7 bytes
    $bytes = file_get_contents($file, FALSE, NULL, 0, 7);
    $ext = strtolower(substr($file, - 4));

    // RAR magic number: Rar!\x1A\x07\x00
    // http://en.wikipedia.org/wiki/RAR
    if ($ext == '.rar' and bin2hex($bytes) == '526172211a0700') {
        return TRUE;
    }

    // ZIP magic number: none, though PK\003\004, PK\005\006 (empty archive), 
    // or PK\007\008 (spanned archive) are common.
    // http://en.wikipedia.org/wiki/ZIP_(file_format)
    if ($ext == '.zip' and substr($bytes, 0, 2) == 'PK') {
        return TRUE;
    }

    return FALSE;
}

Hala 100% belli olmayacak, dikkat edin, ama muhtemelen yeterince iyi.

$ rar.exe l somefile.zip
somefile.zip is not RAR archive

Ama bile algılar WinRAR SFX arşiv olarak RAR dosyaları sigara:

$ rar.exe l somefile.srr
SFX Volume somefile.srr

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • NikkoNantone

    NikkoNantone

    21 Kasım 2011
  • Ownage Pranks

    Ownage Prank

    13 AĞUSTOS 2007
  • The Brister

    The Brister

    10 ŞUBAT 2008