2010-02-06 21 views
6

Dosyalarımın neden bazı kullanıcılar için yüklenmediğini ve test ettiğim tarayıcı olan krom kullanmayan herkesin olduğunu anladım.Neden firefox, mrome ile mime tipi bir tutarsızlık var?

Temel olarak, yalnızca mp3 yükleyebileceğinden emin olmak için bir dosya denetimi yapıyorum.

Bu, krom için çalışıyordu, ancak firefox değil.

if ($_FILES['uploaded']['type']=="audio/mp3") 

Bu, firefox için değil, krom için çalışıyordu.

$_FILES['uploaded']['type']=="audio/mpeg" 

Bunun nedenini açıklayabilir misiniz? Her iki tarayıcının da anlayabileceğini düşünürdüm ya da ... Şu gibi dokunaklı mim türleri hakkında endişelenmem gereken başka tarayıcılar var mı?

Düzenleme: Pekka'nın önerdiği doğruysa, belirli bir mim tipini kontrol etmenin en iyi yolu ne olurdu?

+0

Düzenlemenizi yeniden yapın: Düzenlenmiş cevabımı kontrol edin. –

+0

Tek, "Bu krom için çalışıyordu, ancak firefox değil, ses/mp3" konusunda emin misiniz? Buradaki mevcut tarayıcı sürümlerinde, Firefox'ta tersine ses/mp3 çalismalari görüyorum, ancak Chrome'u göremiyorum. – ChrisJJ

cevap

5

w3schools'a göre, audio/mpeg doğru türdür. Ama önemli değil, MIME tipleri değişebilir, dosyaları kontrol ederken kesinlikle onlara güvenemezsiniz. Tutarsızlıklar kuraldır ve beklenebilir.

belki getid3 paket size yardımcı olabilir, bir MP3 dosyası tespit etmek için:

getID3() MP3 & diğer multimedya dosya biçimleri gelen faydalı bilgiler ayıklayan bir PHP script.

Düzenleme: IANA MIME türleri here resmi bir listesi vardır. Orada mp3 diye bir şey yok, bu yüzden Chrome'un parçası üzerinde buggy davranışı.

Düzenleme 2: Bir dosyanın MIME türünü belirlemek için sunucu tarafında en iyi bahsiniz finfo uzantıdır. Verilerin ilk birkaç baytında belirli dosya türlerinin belirli özelliklerini ararken, "içerik koklama" yöntemiyle bir dosyanın türünü belirlemeye çalışır. Bu süreçte, MIME türleri de değişebilir, ancak en azından aynı sunucuda tutarlıdır, bu nedenle artık tarayıcı sorunlarınız olmayacaktır.

+1

Pekka gibi, fileinfo uzantısı, mime tipini test etmenin tek yoludur. Sadece dosya dizisi türüne gerçekten güvenemediğinizi belirtmek isterim. İstemciden geliyor ve değiştirmek için önemsiz. Aptal değil, ama tarayıcının gönderdiği şeyden daha iyi. –

3

Her tarayıcı

bir kullanıcı tarafından oluşturulan meta bilgilere dayanarak ... tüm geliştiricilerin hüsran (#rant) için, biraz farklı çok W3C standartları uygulamak ve/tarayıcı derece güvenilmez ve tavsiye değil. Bu sizin tek güvenlik/akıl yürütme mekanizmanızsa, sisteminize zarar vermek isteyen birisi meta tip alanına == "audio/mpeg" özel isteği ile manuel olarak girebilir ve her türlü yürütülebilir dosyayı yükleyebilir. Gerçekten emin olmak istiyorsanız, kalıcı depolama/üretim sisteminize kabul etmeden önce yüklendikten sonra sunucu tarafındaki verileri tamamen incelemeniz gerekir. Ya da daha az uğursuz bir not üzerinde .. daha önce test etmediğiniz farklı bir tarayıcıya sahip bir kullanıcı yasal bir mp3 dosyası yüklemek isteyebilir, ancak mime tipini ses/mpeg veya ses/mp3 olarak duyuramayabilir ve daha sonra bunları reddedersiniz Sisteme ...

-2

ses etiketi

<audio controls="controls" autoplay="true"> 
         <source id="webm" src="Mash Up 2011 19 songs in 1 DJ Got Us Falling In Love Mandu DeeJay Remix.ogg" type="audio/ogg" /> 
         <source id="webm" src="Mash Up 2011 19 songs in 1 DJ Got Us Falling In Love Mandu DeeJay Remix.mp3" type="audio/mp3" /> 
         <source id="webm" src="Mash Up 2011 19 songs in 1 DJ Got Us Falling In Love Mandu DeeJay Remix.webm" type="audio/webm" /> 
         <!--[if lt IE 9]> 
         <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="150" height="38" id="niftyPlayer1" align="right"> 
         <param name=movie value="niftyplayer.swf?file=Mash Up 2011 19 songs in 1 DJ Got Us Falling In Love Mandu DeeJay Remix.mp3&as=1"> 
         <param name=quality value=high> 
         <param name=bgcolor value=#471313> 
         <embed src="niftyplayer.swf?file=Mash Up 2011 19 songs in 1 DJ Got Us Falling In Love Mandu DeeJay Remix.mp3&as=1" quality=high bgcolor=#471313 width="150" height="38" name="niftyPlayer1" align="right" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"> 
         </embed> 
         </object> 
         <!--<![endif]--> 
        </audio> 

video Etiketi

<video width="400" height="300" controls="controls" poster="img/poster.png" > 
      <source id="3gp" src="wedding1.3gp" type="video/3gp" /> 
      <source id="mp4" src="perfectparties/weddingDroid.mp4" type="video/mp4" /> 
      <source id="webm" src="wedding1.webm" type="video/webm" /> 
      <source id="mp4" src="perfectparties/wedding1.mp4" type="video/mp4" /> 
      <source id="ogv" src="perfectparties/wedding1.ogv" type="video/ogv" /> 

      <!--[if lt IE 9]> 
      <object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="300"> 
       <param name="autoplay" value="false"> 
       <param name="movie" value="wedding1.swf"> 
       <param name="quality" value="high"> 
       <param name="wmode" value="opaque"> 
       <param name="swfversion" value="6.0.65.0"> 
       <param name="expressinstall" value="Scripts/expressInstall.swf"> 
       </object> 
       <!--<![endif]--> 
</video> 


<script type="text/javascript"> 
swfobject.registerObject("FlashID"); 
</script> 

Tüm formatlarda birlikte çalışmayı gerektirir ...

ÖNEMLİSİ sistem yöneticinizle MIME TÜRLERİ KULLANILACAK İZİN HAS EMİN OLUN SERVER/ROOT/DOMAIN ÜZERİNDE. Bu en büyük tutarsızlıktır, ancak bu IE dahil tüm tarayıcılarda çalışır.

+0

Soru, medya öğeleri değil, dosya yüklemeleri hakkında konuşuyor. – Quentin

İlgili konular