Eklenmiş Dosya doğrulanıyor

4 Cevap php

Ben bir Microsoft Word Belgeleri yüklemek için bir kullanıcı gerektiren bir belge üzerinde çalışıyorum.

Apart dosya uzantısı. Doc veya. Docx olarak denetlemesini, ben yüklenen dosya aslında bir Microsoft Word belgesi ve bir. Doc veya. Docx uzantısı olarak yeniden adlandırıldı herhangi bir diğer dosya olduğunu doğrulamak herhangi başka bir yolu yoktur.

Şimdiden teşekkürler.

4 Cevap

PHP 5.3 kullanmıyorsanız, mime_content_type fonksiyon İlginizi çekebilir.

If you are using PHP 5.3 and/or can install PECL extensions, the new Fileinfo library should do the job ; see finfo_file for more informations.
In the given example, one of the identified mime types is "application/vnd.ms-excel" ; so, with a bit of luck, it should be able to deal with MS Word files too ;-)

.docx standardını zip sıkıştırma düzeni kullanılarak sıkıştırılmış XML dosyaları kümesidir. Yani bir unzip algoritma geçirmeden ve sıkıştırmasını görmesini deneyin ve sonra içindeki uygun xml dosyasına bakmak ve bir belgede bulmak için beklediğiniz alanları kontrol etmek için çalışabilir.

. Microsoft, doc dosyaları için, sihirli sayı için dosyanın ilk birkaç byte kontrol edebilirsiniz:

D0 CF 11 E0 A1 B1 1A E1

ve bayt "alt başlık" 512 ofset.

Eğer deneyebilirsiniz:

$type = `file -bi $UploadedFilePath`;

Bu dosya içeriği içine bakmak ve hangi dosya türü tespit edecek linux file programı başlatacağını duyurdu.

Birçok dosya türleri ile çalışır (ve biz yüklenen dosyaları tespit üretim kodunda kullanmak) olsa da, Microsoft Word belgesi sürümlerinde emin değil.