Browse Source

[svn r18056] sys_get_temp_dir() is on php since 5.2.1, keep compatibility

now it's used on main/document/upload.php, so wait until this php version is common
Marco Villegas 16 years ago
parent
commit
cca7a7c348
1 changed files with 41 additions and 0 deletions
  1. 41 0
      main/inc/lib/main_api.lib.php

+ 41 - 0
main/inc/lib/main_api.lib.php

@@ -3047,3 +3047,44 @@ function api_is_in_group($group_id = null, $course_code = null) {
 	}
 	return false;
 }
+
+// sys_get_temp_dir() is on php since 5.2.1
+if ( !function_exists('sys_get_temp_dir') )
+{
+    // Based on http://www.phpit.net/
+    // article/creating-zip-tar-archives-dynamically-php/2/
+    function sys_get_temp_dir()
+    {
+        // Try to get from environment variable
+        if ( !empty($_ENV['TMP']) )
+        {
+            return realpath( $_ENV['TMP'] );
+        }
+        else if ( !empty($_ENV['TMPDIR']) )
+        {
+            return realpath( $_ENV['TMPDIR'] );
+        }
+        else if ( !empty($_ENV['TEMP']) )
+        {
+            return realpath( $_ENV['TEMP'] );
+        }
+
+        // Detect by creating a temporary file
+        else
+        {
+            // Try to use system's temporary directory
+            // as random name shouldn't exist
+            $temp_file = tempnam( md5(uniqid(rand(), TRUE)), '' );
+            if ( $temp_file )
+            {
+                $temp_dir = realpath( dirname($temp_file) );
+                unlink( $temp_file );
+                return $temp_dir;
+            }
+            else
+            {
+                return FALSE;
+            }
+        }
+    }
+}