Beispiel #1
0
 public function action_edit()
 {
     $file = ORM::factory('file', $this->request->param('id'));
     if (!$file->loaded()) {
         notes::add('error', 'Filen blev ikke fundet!');
         cms::redirect('files');
     }
     if ($_POST) {
         $filename = arr::get($_POST, 'filename', '');
         if (empty($filename)) {
             $filename = $file->filename;
         }
         if ($filename != $file->filename) {
             $filename = files::fixname($filename);
             $filename = files::get_available_filename('files/', $filename, $file->ext);
             rename('files/' . $file->filename(), 'files/' . $filename . '.' . $file->ext);
             $versions = $file->versions->find_all();
             if ((bool) $versions->count()) {
                 foreach ($versions as $version) {
                     $version->delete();
                 }
             }
         }
         $file->filename = $filename;
         $file->alt = arr::get($_POST, 'alt', '');
         $file->description = arr::get($_POST, 'description', '');
         try {
             $file->save();
             cms::redirect('files/edit/' . $file->id);
         } catch (exception $e) {
             notes::add('error', 'Filen kunne ikke gemmes! Siden sagde: ' . $e->getMessage());
         }
     }
     $this->bind('file', $file);
 }
Beispiel #2
0
 public static function upload()
 {
     $dir = 'files/';
     $file = $_FILES['files'];
     $parts = explode('.', $file['name'][0]);
     $ext = strtolower(strtolower(end($parts)));
     $name = mb_strtolower(implode('.', array_slice($parts, 0, count($parts) - 1)));
     $name = files::fixname($name);
     $name = self::get_available_filename($dir, $name, $ext);
     $filename = $name . '.' . $ext;
     if (move_uploaded_file($file['tmp_name'][0], $dir . $filename)) {
         $finfo = new finfo(FILEINFO_MIME);
         $type = $finfo->file($dir . $filename);
         $mime = substr($type, 0, strpos($type, ';'));
         $file = ORM::factory('File');
         $file->filename = $name;
         $file->type = $mime;
         $file->ext = $ext;
         $file->created = time();
         try {
             $file->save();
             return $file;
         } catch (exception $e) {
             unlink($dir . $name);
             return false;
         }
     } else {
         return false;
     }
 }