Support uploads with UTF-8 names on Windows
[lhc/web/wiklou.git] / includes / libs / filebackend / FSFileBackend.php
index 8afdce4..b257e27 100644 (file)
@@ -19,8 +19,8 @@
  *
  * @file
  * @ingroup FileBackend
- * @author Aaron Schulz
  */
+use Wikimedia\Timestamp\ConvertibleTimestamp;
 
 /**
  * @brief Class for a file system (FS) based file backend.
@@ -99,7 +99,13 @@ class FSFileBackend extends FileBackendStore {
        }
 
        public function getFeatures() {
-               return !$this->isWindows ? FileBackend::ATTR_UNICODE_PATHS : 0;
+               if ( $this->isWindows && version_compare( PHP_VERSION, '7.1', 'lt' ) ) {
+                       // PHP before 7.1 used 8-bit code page for filesystem paths on Windows;
+                       // See http://php.net/manual/en/migration71.windows-support.php
+                       return 0;
+               } else {
+                       return FileBackend::ATTR_UNICODE_PATHS;
+               }
        }
 
        protected function resolveContainerPath( $container, $relStoragePath ) {