Переглянути джерело

tweaked TemporaryStorage directory creation

Fabien Potencier 14 роки тому
батько
коміт
50d3c92e22

+ 0 - 6
src/Symfony/Component/Form/Extension/Core/EventListener/FixFileUploadListener.php

@@ -55,12 +55,6 @@ class FixFileUploadListener implements EventSubscriberInterface
         if ($data['file'] instanceof UploadedFile && $data['file']->isValid()) {
             $data['token'] = (string)rand(100000, 999999);
             $directory = $this->storage->getTempDir($data['token']);
-
-            if (!file_exists($directory)) {
-                // Recursively create directories
-                mkdir($directory, 0777, true);
-            }
-
             $data['file']->move($directory);
             $data['name'] = $data['file']->getName();
         }

+ 2 - 0
src/Symfony/Component/HttpFoundation/File/SessionBasedTemporaryStorage.php

@@ -18,6 +18,8 @@ use Symfony\Component\HttpFoundation\Session;
  */
 class SessionBasedTemporaryStorage extends TemporaryStorage
 {
+    private $session;
+
     public function __construct(Session $session, $secret, $directory)
     {
         parent::__construct($secret, $directory);

+ 7 - 1
src/Symfony/Component/HttpFoundation/File/TemporaryStorage.php

@@ -46,6 +46,12 @@ class TemporaryStorage
 
         $hash = $this->generateHash($token);
 
-        return $this->directory.DIRECTORY_SEPARATOR.substr($hash, 0, 2).DIRECTORY_SEPARATOR.substr($hash, 2);
+        $directory = $this->directory.DIRECTORY_SEPARATOR.substr($hash, 0, 2).DIRECTORY_SEPARATOR.substr($hash, 2);
+
+        if (!file_exists($directory)) {
+            mkdir($directory, 0777, true);
+        }
+
+        return $directory;
     }
 }