Example #1
0
 /**
  * @param string                  $filename
  * @param string|null             $content
  * @param CM_File_Filesystem|null $filesystem
  * @throws CM_Exception_Invalid
  * @return CM_File_UserContent_Temp
  */
 public static function create($filename, $content = null, CM_File_Filesystem $filesystem = null)
 {
     if ($filesystem) {
         throw new CM_Exception_Invalid('Temporary user-content file cannot handle filesystem');
     }
     $filename = (string) $filename;
     if (strlen($filename) > 100) {
         $filename = substr($filename, -100, 100);
     }
     $uniqid = md5(rand() . uniqid());
     CM_Db_Db::insert('cm_tmp_userfile', array('uniqid' => $uniqid, 'filename' => $filename, 'createStamp' => time()));
     $file = new self($uniqid);
     $file->ensureParentDirectory();
     if (null !== $content) {
         $file->write($content);
     }
     return $file;
 }