/** * @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; }