Source for file KTDownloadManager.inc.php
Documentation is available at KTDownloadManager.inc.php
* KTDownloadManager manages files in the download_files table.
* @license http://www.knowledgetree.com/KPL KnowledgeTree Public License Version 1.1
* The contents of this file are subject to the KnowledgeTree Public
* License Version 1.1 ("License"); You may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.knowledgetree.com/KPL
* Software distributed under the License is distributed on an "AS IS"
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* The Original Code is: KnowledgeTree Open Source
* The Initial Developer of the Original Code is The Jam Warehouse Software
* (Pty) Ltd, trading as KnowledgeTree.
* Portions created by The Jam Warehouse Software (Pty) Ltd are Copyright
* (C) 2007 The Jam Warehouse Software (Pty) Ltd;
* Constructor for the download manager.
* @param KTAPI_Session $session
* @return KTDownloadManager
$config =
&KTConfig::getSingleton();
$this->age =
$config->get('webservice/downloadExpiry',5);
$this->download_url =
$config->get('webservice/downloadUrl');
$this->random=
$config->get('webservice/randomKeyText','jhsdf8q1jkjpoiudfs7sd3ds1');
* Sets the current session.
* @param KTAPI_Document $document
$id =
DBUtil::autoInsert('download_files',
'document_id'=>
$document->documentid,
'download_date'=>
date('Y-m-d H:i:s'),
return $this->build_url($hash, $document->documentid );
* This returns the url used to download a document.
* This starts a download.
function download($document_id, $hash, $version =
null)
$sql =
"SELECT 1 FROM download_files WHERE hash='$hash' AND session='$this->session' AND document_id=$document_id";
$rows =
DBUtil::getResultArray($sql);
if (PEAR::isError($rows))
return new PEAR_Error('Invalid session.');
$storage =
& KTStorageManagerUtil::getSingleton();
$res =
$ktapi->get_active_session($this->session);
$document =
$ktapi->get_document_by_id($document_id);
if (PEAR::isError($document))
$version =
KTDocumentContentVersion::get($version);
$res =
$storage->downloadVersion($document->document, $version);
$res =
$storage->download($document->document);
$sql =
"DELETE FROM download_files WHERE hash='$hash' AND session='$this->session' AND document_id=$document_id";
$result =
DBUtil::runQuery($sql);
* This will remove any temporary files that have not been dealt with in the correct timeframe.
list
($year,$mon,$day,$hour, $min) =
explode(':', date('Y:m:d:H:i'));
$expirydate =
date('Y-m-d H:i:s', mktime($hour, $min -
$this->age, 0, $mon, $day, $year));
$sql =
"DELETE FROM download_files WHERE download_date<'$expirydate'";
Documentation generated on Sun, 22 Apr 2007 02:30:54 +0200 by phpDocumentor 1.3.2