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 }