क्या PHP में एक्सटेंशन के लिए एमआईएम प्रकारों का त्वरित और गंदे मैपिंग है जिसका मैं उपयोग कर सकता हूं?मैं PHP में किसी MIME प्रकार से जुड़े एक्सटेंशन (ओं) को कैसे निर्धारित करूं?
उत्तर
में निर्मित नहीं है, लेकिन यह रोल करने के लिए कठिन बहुत नहीं है अपनी खुद की:
function system_extension_mime_types() {
# Returns the system MIME type mapping of extensions to MIME types, as defined in /etc/mime.types.
$out = array();
$file = fopen('/etc/mime.types', 'r');
while(($line = fgets($file)) !== false) {
$line = trim(preg_replace('/#.*/', '', $line));
if(!$line)
continue;
$parts = preg_split('/\s+/', $line);
if(count($parts) == 1)
continue;
$type = array_shift($parts);
foreach($parts as $part)
$out[$part] = $type;
}
fclose($file);
return $out;
}
function system_extension_mime_type($file) {
# Returns the system MIME type (as defined in /etc/mime.types) for the filename specified.
#
# $file - the filename to examine
static $types;
if(!isset($types))
$types = system_extension_mime_types();
$ext = pathinfo($file, PATHINFO_EXTENSION);
if(!$ext)
$ext = $file;
$ext = strtolower($ext);
return isset($types[$ext]) ? $types[$ext] : null;
}
function system_mime_type_extensions() {
# Returns the system MIME type mapping of MIME types to extensions, as defined in /etc/mime.types (considering the first
# extension listed to be canonical).
$out = array();
$file = fopen('/etc/mime.types', 'r');
while(($line = fgets($file)) !== false) {
$line = trim(preg_replace('/#.*/', '', $line));
if(!$line)
continue;
$parts = preg_split('/\s+/', $line);
if(count($parts) == 1)
continue;
$type = array_shift($parts);
if(!isset($out[$type]))
$out[$type] = array_shift($parts);
}
fclose($file);
return $out;
}
function system_mime_type_extension($type) {
# Returns the canonical file extension for the MIME type specified, as defined in /etc/mime.types (considering the first
# extension listed to be canonical).
#
# $type - the MIME type
static $exts;
if(!isset($exts))
$exts = system_mime_type_extensions();
return isset($exts[$type]) ? $exts[$type] : null;
}
मुझे लगता है कि यह एक पुराना जवाब है। अब आपको 'fileinfo' http://www.php.net/manual/en/ref.fileinfo.php –
@ JorgeB.G का उपयोग करना चाहिए। इसके लिए फ़ाइल मौजूद है, है ना? – danronmoon
@ डैन्रोनमून। हाँ यह करता है। – Qix
आप एक वेब सेवा का उपयोग करना चाहते हैं, तो मैं बस अपना माइम प्रकार < के हिस्से के रूप में इस बनाया -> आइकन सेवा
उदाहरण के लिए:
यह एपेंगेन पर चलता है इसलिए इसकी उच्च उपलब्धता होनी चाहिए।
-1; इसके लिए वेब सेवा का उपयोग करने की आवश्यकता नहीं है जब इसे स्थानीय रूप से हासिल किया जा सकता है, यह एमआईएमई प्रकार * से * एक्सटेंशन (ओपी के लिए क्या पूछा जाता है) के मैपिंग की अनुमति नहीं देता है, और वेब सेवा के रूप में वर्तमान में खड़े एक्सटेंशन में कमी है जो मेरे स्थानीय सामान्य उबंटू इंस्टॉलेशन पर 'mime.types' फ़ाइल '.woff' की तरह समझती है। –
http://stdicon.com पर नेविगेट करना मेरे लिए एक त्रुटि उत्पन्न करता है। पेस्टबिन से लिंक करें: http://pastebin.com/BjkGRv7H। यह ध्यान देने योग्य है कि सेवा स्वयं ठीक काम करती है। – starbeamrainbowlabs
आप mime_content_type
का उपयोग कर सकते हैं लेकिन इसे हटा दिया गया है। बजाय fileinfo
का उपयोग करें:
function getMimeType($filename) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($finfo, $filename);
finfo_close($finfo);
return $mime;
}
यह ध्यान देने योग्य है कि ओपी ने वास्तव में एमआईएम प्रकार * से * फ़ाइल एक्सटेंशन को मैप करने के लिए कहा था। इसमें अभी भी सबसे आम उपयोग मामले (और शायद ओपी का सामना करना पड़ रहा था) शामिल है, इसलिए यह निश्चित रूप से अस्तित्व में है और मैंने इसे +1 किया है, लेकिन यह * कथित रूप से प्रश्न का उत्तर नहीं है जिसे पैडेंटिक रूप से पूछा गया था व्याख्या की। –
नोट: 'finfo_file()' और 'mime_content_type() 'की आवश्यकता है कि फ़ाइल मौजूद है। – Pang
कहां कहता है कि इसे बहिष्कृत किया गया है? – Greg
आप छवियों के सीमित एक्सटेंशन भिन्न है और बहुत ही सरल कुछ चाहिए के साथ काम कर रहे हैं, तो मुझे लगता है कि यह पर्याप्त है।
switch($info['mime'])
{
case 'image/gif' : $extension = 'gif'; break;
case 'image/png' : $extension = 'png'; break;
case 'image/jpeg' : $extension = 'jpg'; break;
default :
throw new ApplicationException('The file uploaded was not a valid image file.');
break;
}
आप इस पुस्तकालय का उपयोग करना चाहें: https://github.com/ralouphie/mimey
उदाहरण उपयोग:
$mimes = new \Mimey\MimeTypes;
// Convert extension to MIME type:
$mimes->getMimeType('json'); // application/json
// Convert MIME type to extension:
$mimes->getExtension('application/json'); // json
इसका कारण यह है जाहिरा तौर पर प्रदान की पीएचपी कार्यों की गुणवत्ता संदिग्ध है।
उपयोग इस फ़ाइल: https://github.com/ralouphie/mimey/blob/develop/mime.types.php
इस तरह:
$mimes=include('mime.types.php');
या कॉपी सामग्री:
$mime= array (
'mimes' =>
array (
'ez' =>
array (
0 => 'application/andrew-inset',
),
'aw' =>
array (
0 => 'application/applixware',
),
'atom' =>
array (
0 => 'application/atom+xml',
),
'atomcat' =>
array (
0 => 'application/atomcat+xml',
)
...
और एक धारा से हो रही का एक उदाहरण:
$finfo = new \finfo(FILEINFO_MIME_TYPE);
$mime=$finfo->buffer($data);
$mimes=include(__DIR__."/mime.types.php");
echo ($mime); //mime
echo ($mimes['extensions'][$mime]); // file extension
- 1. सामग्री द्वारा फ़ाइल MIME प्रकार को कैसे निर्धारित करें?
- 2. मैं फ़ाइल प्रकार से जुड़े आइकन कैसे प्राप्त करूं?
- 3. मैं PHP/MySQL में किसी उपयोगकर्ता को प्रमाणित कैसे करूं?
- 4. कोई फ़ाइल एक्सटेंशन के साथ PHP में MIME प्रकार प्राप्त करना
- 5. MSOFFICE MIME प्रकार सत्यापन
- 6. मैं किसी प्रकार से TryParse विधि से कैसे प्राप्त करूं?
- 7. जावास्क्रिप्ट MIME प्रकार
- 8. मैं PHP में उपयोग से फ़ंक्शन को अक्षम कैसे करूं?
- 9. मैं अपने हेडर (ओं) का उपयोग कर सटीक पीई छवि फ़ाइल आकार कैसे निर्धारित करूं?
- 10. वीडियो प्रारूप या MIME प्रकार
- 11. मैं CentOS पर PHP intl एक्सटेंशन कैसे स्थापित करूं?
- 12. मैं विंडोज़ पर PHP HTTP पीईसीएल एक्सटेंशन कैसे सक्षम करूं?
- 13. मैं स्क्रॉलहेइट कैसे निर्धारित करूं?
- 14. टीएफएस 2010 में किसी स्रोत शाखा से जुड़े कार्य आइटम कैसे निर्धारित करें?
- 15. मैं संदर्भ संदर्भ से जुड़े प्रकार वर्ग का उदाहरण कैसे प्राप्त करूं?
- 16. Qt में फ़ाइल का MIME प्रकार कैसे प्राप्त करें?
- 17. मैं बाइट [] प्रकार से कैसे मेल करूं?
- 18. किसी भी तालिका से जुड़े रिकॉर्ड्स?
- 19. मैं ओपनसीएल में उपलब्ध डिवाइस मेमोरी कैसे निर्धारित करूं?
- 20. मैं FrontPage एक्सटेंशन से त्रुटि कोड की व्याख्या कैसे करूं?
- 21. किसी प्रक्रिया से जुड़े होने पर स्ट्रेस को कैसे छोड़ें?
- 22. मैं php में स्ट्रिंग से केवल शब्दों की एक निर्धारित संख्या कैसे प्राप्त करूं?
- 23. क्रोम एक्सटेंशन में विशिष्ट HTML तत्व से जुड़े ईवेंट श्रोता प्रकारों को कैसे पता लगाएं?
- 24. किसी DOM विंडो से जुड़े टैब को ढूंढना
- 25. मैं सामग्री प्रकार को जूमला में कैसे सेट करूं?
- 26. मैं आंशिक दृश्य में मूल कार्रवाई से जुड़े रूटडेटा को कैसे प्राप्त करूं?
- 27. मैं उचित चेक अंतराल कैसे निर्धारित करूं?
- 28. मैं अपनी वेबसाइट पर किसी विज़िटर का स्थान सटीक रूप से कैसे निर्धारित करूं?
- 29. मैं कैसे निर्धारित करूं कि एक्सेल वीबीए
- 30. विंडोज़: विस्तार से जुड़े अनुप्रयोगों को सूचीबद्ध और लॉन्च करें
PEO कृपया अन्य तरीकों की बजाय * एक्सटेंशन * से * एमआईएमई प्रकार * को मैप करना चाहते हैं, ध्यान दें कि अब इसके लिए अंतर्निहित समर्थन है जिसका उन्हें लाभ उठाना चाहिए - देखें [जॉर्ज का जवाब] (http: // स्वीकार्य एक के बजाय stackoverflow.com/a/20494035/1709587)। –
@MarkAmery हालांकि उल्लेख किया गया है, finfo_file() की आवश्यकता है कि फ़ाइल मौजूद है। जो हमेशा मामला नहीं है। कैओस का उत्तर ओपी के बिंदु पर अभी भी अधिक है और अभी भी 8 साल बाद वैध है। – Wranorn