00001 <?php 00011 class UploadFromStash extends UploadBase { 00012 public static function isValidSessionKey( $key, $sessionData ) { 00013 return !empty( $key ) && 00014 is_array( $sessionData ) && 00015 isset( $sessionData[$key] ) && 00016 isset( $sessionData[$key]['version'] ) && 00017 $sessionData[$key]['version'] == self::SESSION_VERSION; 00018 } 00019 00020 public static function isValidRequest( $request ) { 00021 $sessionData = $request->getSessionData( 'wsUploadData' ); 00022 return self::isValidSessionKey( 00023 $request->getInt( 'wpSessionKey' ), 00024 $sessionData 00025 ); 00026 } 00027 00028 public function initialize( $name, $sessionKey, $sessionData ) { 00036 $this->initializePathInfo( $name, 00037 $this->getRealPath ( $sessionData['mTempPath'] ), 00038 $sessionData['mFileSize'], 00039 false 00040 ); 00041 00042 $this->mSessionKey = $sessionKey; 00043 $this->mVirtualTempPath = $sessionData['mTempPath']; 00044 $this->mFileProps = $sessionData['mFileProps']; 00045 } 00046 00047 public function initializeFromRequest( &$request ) { 00048 $sessionKey = $request->getInt( 'wpSessionKey' ); 00049 $sessionData = $request->getSessionData('wsUploadData'); 00050 00051 $desiredDestName = $request->getText( 'wpDestFile' ); 00052 if( !$desiredDestName ) 00053 $desiredDestName = $request->getText( 'wpUploadFile' ); 00054 return $this->initialize( $desiredDestName, $sessionKey, $sessionData[$sessionKey] ); 00055 } 00056 00060 protected function verifyFile() { 00061 return true; 00062 } 00063 00064 00068 public function stashSession() { 00069 if ( !empty( $this->mSessionKey ) ) 00070 return $this->mSessionKey; 00071 return parent::stashSession(); 00072 } 00073 00078 public function unsaveUploadedFile() { 00079 $repo = RepoGroup::singleton()->getLocalRepo(); 00080 $success = $repo->freeTemp( $this->mVirtualTempPath ); 00081 return $success; 00082 } 00083 00084 }