2011-10-24 9 views
5

पर fileinfo के साथ विफल रहता है मुझे एक CentOS सर्वर पर PHP 5.3.8 स्थापित के साथ फ़ाइलइनfo के साथ एक साधारण पीएनजी फ़ाइल के माइम प्रकार का पता लगाने में समस्या हो रही है।माइम टाइप डिटेक्शन PHP 5.3.8

समस्या

असल में, मैं निम्नलिखित कोड है, तो: फ़ाइल एक PNG छवि के रूप में आप देख सकते हैं

<?php 
$const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME; 
$handle = finfo_open($const, '/usr/share/file/magic.mime'); 
$result = finfo_file($handle, '/var/vhosts/v4dev/public/Melvin.png'); 
echo $result; 
unset($handle); 
?> 

। फ़ाइल के हेडर बाइट्स की जांच की गई है और सही हैं। लेकिन यह पेज एक गलत परिणाम आउटपुट:

application/octet-stream 

मुझे लगता है कि इस वजह से फ़ाइल प्रकार पता नहीं लगाया जा सकता है, और fileinfo डिफ़ॉल्ट प्रतिक्रिया लौट आए, लेकिन मुझे लगता है कि जाँच करने के लिए कोई रास्ता नहीं मिला।

file -m /usr/share/file/magic.mime /var/vhosts/v4dev/public/Melvin.png 

कौन सा अपेक्षित परिणाम लौटे:

/var/vhosts/v4dev/public/Melvin.png: image/png 

मैं

मैं क्या करने की कोशिश की

magic.mime फ़ाइल शुद्धता जांचने के लिए, मैं फ़ाइल कंसोल कमांड का इस्तेमाल किया Apache के साथ प्रदान की गई एक और जादू.माइम फ़ाइल भी कोशिश की, लेकिन समस्या बनी हुई है।

मैंने MAGIC पर्यावरण परिवर्तक के साथ, डिफ़ॉल्ट फ़ाइलइन्फो स्थान (सिमलिंक और फ़ाइल की प्रति के साथ) के माध्यम से magic.mime फ़ाइल निर्दिष्ट करने का प्रयास किया, और finfo_open कॉल (ऊपर के रूप में) में फ़ाइल पथ निर्दिष्ट करके।

मैंने PHP अद्यतन करने का प्रयास किया।

... और अब मैं विकल्पों में से बाहर हूं।


अगर कोई मेरी मदद कर सकता है, तो मैं अंतरिक्ष के माध्यम से खुशी की लहर भेजूंगा ताकि वह खुशी से बाद में रह सके।

चीयर्स

उत्तर

1

तो क्यों अपनी स्क्रिप्ट से file आदेश फोन नहीं?

$result = `file -bm /usr/share/file/magic.mime /var/vhosts/v4dev/public/Melvin.png` 

निश्चित रूप से, यह सही नहीं है, लेकिन यह एक विकल्प है।

+0

हम्म हाँ जो एक अस्थायी हैक के रूप में काम कर सकता है जब तक कि मुझे कुछ और ठोस न हो। धन्यवाद। – Shtong

संबंधित मुद्दे