class UploadFromStash extends UploadBase {
protected $mFileKey, $mVirtualTempPath, $mFileProps, $mSourceType;
-
+
// an instance of UploadStash
private $stash;
-
+
//LocalFile repo
private $repo;
-
+
+ /**
+ * @param $user User
+ * @param $stash UploadStash
+ * @param $repo FileRepo
+ */
public function __construct( $user = false, $stash = false, $repo = false ) {
// user object. sometimes this won't exist, as when running from cron.
$this->user = $user;
return true;
}
-
+
+ /**
+ * @param $key string
+ * @return bool
+ */
public static function isValidKey( $key ) {
// this is checked in more detail in UploadStash
return (bool)preg_match( UploadStash::KEY_FORMAT_REGEX, $key );
return self::isValidKey( $request->getText( 'wpFileKey', $request->getText( 'wpSessionKey' ) ) );
}
+ /**
+ * @param $key string
+ * @param $name string
+ */
public function initialize( $key, $name = 'upload_file' ) {
/**
* 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.
- */
+ */
$metadata = $this->stash->getMetadata( $key );
$this->initializePathInfo( $name,
$this->getRealPath ( $metadata['us_path'] ),
return $this->initialize( $fileKey, $desiredDestName );
}
- public function getSourceType() {
- return $this->mSourceType;
+ /**
+ * @return string
+ */
+ public function getSourceType() {
+ return $this->mSourceType;
}
/**
/**
* Stash the file.
+ *
+ * @return UploadStashFile
*/
public function stashFile() {
// replace mLocalFile with an instance of UploadStashFile, which adds some methods
/**
* Perform the upload, then remove the database record afterward.
+ * @param $comment string
+ * @param $pageText string
+ * @param $watch bool
+ * @param $user User
+ * @return Status
*/
public function performUpload( $comment, $pageText, $watch, $user ) {
$rv = parent::performUpload( $comment, $pageText, $watch, $user );
/**
* Append a chunk to the temporary file.
*
- * @return void
+ * @return Status
*/
public function appendChunk($chunk, $chunkSize, $offset) {
//to use $this->getFileSize() here, db needs to be updated
//append chunk
if ( $fileSize == $offset ) {
$status = $this->appendToUploadFile( $chunk,
- $this->mVirtualTempPath );
+ $this->mVirtualTempPath );
} else {
$status = Status::newFatal( 'invalid-chunk-offset' );
}