30
30
*/
31
31
class PHPWord_Shared_File
32
32
{
33
+ const IMAGETYPE_JPEG = 'jpg ' ;
34
+ const IMAGETYPE_GIF = 'gif ' ;
35
+ const IMAGETYPE_PNG = 'png ' ;
36
+ const IMAGETYPE_BMP = 'bmp ' ;
37
+ const IMAGETYPE_TIFF = 'tif ' ;
38
+
33
39
/**
34
40
* Verify if a file exists
35
41
*
@@ -74,10 +80,20 @@ public static function realpath($pFilename)
74
80
* @param string $filename
75
81
* @return int|bool
76
82
*/
77
- public static function PHPWord_imagetype ($ filename )
83
+ private static function fallbackImagetype ($ filename )
78
84
{
79
85
if ((list ($ width , $ height , $ type , $ attr ) = getimagesize ($ filename )) !== false ) {
80
- return $ type ;
86
+ if ($ type === 2 ) {
87
+ return self ::IMAGETYPE_JPEG ;
88
+ } elseif ($ type === 1 ) {
89
+ return self ::IMAGETYPE_GIF ;
90
+ } elseif ($ type === 3 ) {
91
+ return self ::IMAGETYPE_PNG ;
92
+ } elseif ($ type === 6 ) {
93
+ return self ::IMAGETYPE_BMP ;
94
+ } elseif ($ type === 7 || $ type === 8 ) {
95
+ return self ::IMAGETYPE_TIFF ;
96
+ }
81
97
}
82
98
return false ;
83
99
}
@@ -86,14 +102,26 @@ public static function PHPWord_imagetype($filename)
86
102
* Return the Image Type from a file
87
103
*
88
104
* @param string $filename
105
+ * @param bool $userFallbackFunction
89
106
* @return int|bool
90
107
*/
91
- public static function imagetype ($ filename )
108
+ public static function imagetype ($ filename, $ userFallbackFunction = false )
92
109
{
93
- if (function_exists ('exif_imagetype ' )) {
94
- return exif_imagetype ($ filename );
95
- } else {
96
- return self ::PHPWord_imagetype ($ filename );
110
+ if ($ userFallbackFunction || !function_exists ('exif_imagetype ' )) {
111
+ return self ::fallbackImagetype ($ filename );
112
+ }
113
+
114
+ $ imagetype = exif_imagetype ($ filename );
115
+ if ($ imagetype === IMAGETYPE_JPEG ) {
116
+ return self ::IMAGETYPE_JPEG ;
117
+ } elseif ($ imagetype === IMAGETYPE_GIF ) {
118
+ return self ::IMAGETYPE_GIF ;
119
+ } elseif ($ imagetype === IMAGETYPE_PNG ) {
120
+ return self ::IMAGETYPE_PNG ;
121
+ } elseif ($ imagetype === IMAGETYPE_BMP ) {
122
+ return self ::IMAGETYPE_BMP ;
123
+ } elseif ($ imagetype === IMAGETYPE_TIFF_II || $ imagetype === IMAGETYPE_TIFF_MM ) {
124
+ return self ::IMAGETYPE_TIFF ;
97
125
}
98
126
return false ;
99
127
}
0 commit comments