File tree Expand file tree Collapse file tree 1 file changed +31
-1
lines changed
src/Symfony/Component/HttpFoundation/File/MimeType Expand file tree Collapse file tree 1 file changed +31
-1
lines changed Original file line number Diff line number Diff line change @@ -43,7 +43,7 @@ public function __construct($cmd = 'file -b --mime %s 2>/dev/null')
43
43
*/
44
44
public static function isSupported ()
45
45
{
46
- return '\\' !== DIRECTORY_SEPARATOR && function_exists ('passthru ' ) && function_exists ('escapeshellarg ' );
46
+ return '\\' !== DIRECTORY_SEPARATOR && function_exists ('passthru ' ) && function_exists ('escapeshellarg ' ) && self :: hasFileBinary () ;
47
47
}
48
48
49
49
/**
@@ -82,4 +82,34 @@ public function guess($path)
82
82
83
83
return $ match [1 ];
84
84
}
85
+
86
+ /**
87
+ * @return bool
88
+ */
89
+ private static function hasFileBinary ()
90
+ {
91
+ static $ exists ;
92
+
93
+ if (isset ($ exists )) {
94
+ return $ exists ;
95
+ }
96
+
97
+ ob_start ();
98
+
99
+ passthru ('command -v file ' , $ return );
100
+ if ($ return > 0 ) {
101
+ ob_end_clean ();
102
+
103
+ return $ exists = false ;
104
+ }
105
+
106
+ $ binPath = trim (ob_get_clean ());
107
+
108
+ if (!preg_match ('#^(?:/[^\0/])+# ' , $ binPath )) {
109
+ // it's not a bin path, but an error message
110
+ return $ exists = false ;
111
+ }
112
+
113
+ return $ exists = true ;
114
+ }
85
115
}
You can’t perform that action at this time.
0 commit comments