/**
  * Called when the user creates a new file in this directory.
  */
 public function createFile($name, $data = NULL)
 {
     $hash = md5(mt_rand() . time());
     $newPath = Phprojekt::getInstance()->getConfig()->uploadPath . '/' . $hash;
     Default_Helpers_Upload::addFilesToUnusedFileList(array(array('md5' => $hash)));
     if (false === file_put_contents($newPath, $data)) {
         throw new Phprojekt_Exception_IOException('saving failed');
     }
     if (!empty($this->_filemanager->files)) {
         $this->_filemanager->files .= '||';
     }
     $this->_filemanager->files .= $hash . '|' . $name;
     $this->_filemanager->save();
     Default_Helpers_Upload::removeFilesFromUnusedFileList(array(array('md5' => $hash)));
 }
Exemple #2
0
 /**
  * Updated the database table for the unused files.
  * Delete files that are no longe used by the item.
  *
  * @return void
  */
 public function trackUploadedfiles()
 {
     $fields = $this->getInformation()->getInfo(Phprojekt_ModelInformation_Default::ORDERING_FORM, Phprojekt_DatabaseManager::COLUMN_NAME);
     foreach ($fields as $field) {
         $field = Phprojekt_ActiveRecord_Abstract::convertVarFromSql($field);
         if ($this->getInformation()->getType($field) == 'upload' && !empty($this->_storedId)) {
             $files = Default_Helpers_Upload::parseModelValues($this->_data[$field]);
             $originalFiles = Default_Helpers_Upload::parseModelValues($this->_originalData[$field]);
             // remove files that are in the old filelist, but not in the new one
             $toBeDeleted = array();
             foreach ($originalFiles as $ofile) {
                 $toBeDeleted[$ofile['md5']] = $ofile;
             }
             foreach ($files as $file) {
                 if (array_key_exists($file['md5'], $toBeDeleted)) {
                     unset($toBeDeleted[$file['md5']]);
                 }
             }
             $deleteList = array();
             foreach ($toBeDeleted as $hash => $file) {
                 $deleteList[] = $file;
             }
             Default_Helpers_Upload::deleteFiles($deleteList);
             Default_Helpers_Upload::removeFilesFromUnusedFileList($files);
         }
     }
 }