コード例 #1
0
 function saveFileInfo($filepath, $mainContent = false)
 {
     global $db;
     // convert boolean into pgsql format
     if ($mainContent) {
         $mainContent = 'true';
     } else {
         $mainContent = 'false';
     }
     // get audio properties of file
     $file = new sotf_AudioFile($filepath);
     // find if this is an existing file
     if ($file->isAudio()) {
         $fileInfo = new sotf_NodeObject('sotf_media_files');
     } else {
         $fileInfo = new sotf_NodeObject('sotf_other_files');
     }
     $fileInfo->set("prog_id", $this->id);
     $fileInfo->set("filename", $file->name);
     $fileInfo->find();
     // save file info into database
     if ($file->isAudio()) {
         $fileInfo->set('play_length', round($file->duration));
         $fileInfo->set('type', $file->type);
         if (is_numeric($file->bitrate)) {
             // constant bitrate
             $fileInfo->set('kbps', round($file->bitrate));
             $fileInfo->set('vbr', 'f');
         } else {
             // variable bitrate
             $fileInfo->set('kbps', round($file->average_bitrate));
             $fileInfo->set('vbr', 't');
         }
         $fileInfo->set('format', $file->getFormatFilename());
         $fileInfo->set('main_content', $mainContent);
     }
     $fstat = stat($filepath);
     $fileInfo->set('filesize', $fstat['size']);
     $fileInfo->set('last_modified', $db->getTimestampTz($fstat['mtime']));
     $fileInfo->set('mime_type', $file->mimetype);
     $success = $fileInfo->save();
     //if(!$success)
     //	raiseError("could not write into database");
     // change id3 tags in file
     $this->saveID3($file);
     return $fileInfo->id;
 }