re bug #25523: add mime.info and mime.types for *.dwg files so that when people add...
[lhc/web/wiklou.git] / includes / upload / UploadFromStash.php
index 6347834..804db6b 100644 (file)
@@ -1,10 +1,9 @@
 <?php
 /**
- * @file
- * @ingroup upload
- *
  * Implements uploading from previously stored file.
  *
+ * @file
+ * @ingroup upload
  * @author Bryan Tong Minh
  */
 
@@ -14,39 +13,41 @@ class UploadFromStash extends UploadBase {
                        is_array( $sessionData ) &&
                        isset( $sessionData[$key] ) &&
                        isset( $sessionData[$key]['version'] ) &&
-                       $sessionData[$key]['version'] == self::SESSION_VERSION;
+                       $sessionData[$key]['version'] == UploadBase::SESSION_VERSION;
        }
 
        public static function isValidRequest( $request ) {
-               $sessionData = $request->getSessionData( self::SESSION_KEYNAME );
+               $sessionData = $request->getSessionData( UploadBase::SESSION_KEYNAME );
                return self::isValidSessionKey(
-                       $request->getInt( 'wpSessionKey' ),
+                       $request->getText( 'wpSessionKey' ),
                        $sessionData
                );
        }
 
        public function initialize( $name, $sessionKey, $sessionData ) {
-                       /**
-                        * Confirming a temporarily stashed upload.
-                        * We don't want path names to be forged, so we keep
-                        * them in the session on the server and just give
-                        * an opaque key to the user agent.
-                        */
+               /**
+                * Confirming a temporarily stashed upload.
+                * We don't want path names to be forged, so we keep
+                * them in the session on the server and just give
+                * an opaque key to the user agent.
+                */
 
-                       $this->initializePathInfo( $name,
-                               $this->getRealPath ( $sessionData['mTempPath'] ),
-                               $sessionData['mFileSize'],
-                               false
-                       );
-                       
-                       $this->mSessionKey = $sessionKey;
-                       $this->mVirtualTempPath = $sessionData['mTempPath'];
-                       $this->mFileProps = $sessionData['mFileProps'];
+               $this->initializePathInfo( $name,
+                       $this->getRealPath ( $sessionData['mTempPath'] ),
+                       $sessionData['mFileSize'],
+                       false
+               );
+
+               $this->mSessionKey = $sessionKey;
+               $this->mVirtualTempPath = $sessionData['mTempPath'];
+               $this->mFileProps = $sessionData['mFileProps'];
+               $this->mSourceType = isset( $sessionData['mSourceType'] ) ?
+                       $sessionData['mSourceType'] : null;
        }
 
        public function initializeFromRequest( &$request ) {
-               $sessionKey = $request->getInt( 'wpSessionKey' );
-               $sessionData = $request->getSessionData( self::SESSION_KEYNAME );
+               $sessionKey = $request->getText( 'wpSessionKey' );
+               $sessionData = $request->getSessionData( UploadBase::SESSION_KEYNAME );
 
                $desiredDestName = $request->getText( 'wpDestFile' );
                if( !$desiredDestName )
@@ -54,6 +55,10 @@ class UploadFromStash extends UploadBase {
                return $this->initialize( $desiredDestName, $sessionKey, $sessionData[$sessionKey] );
        }
 
+       public function getSourceType() { 
+               return $this->mSourceType; 
+       }
+
        /**
         * File has been previously verified so no need to do so again.
         */
@@ -65,7 +70,7 @@ class UploadFromStash extends UploadBase {
        /**
         * There is no need to stash the image twice
         */
-       public function stashSession() {
+       public function stashSession( $key = null ) {
                if ( !empty( $this->mSessionKey ) )
                        return $this->mSessionKey;
                return parent::stashSession();