示例#1
0
 function isValid()
 {
     $this->fieldID = $this->property_info['id'];
     if (!isset($_FILES[$this->fieldID]['name']) || $_FILES[$this->fieldID]['name'] == '') {
         return true;
     }
     $file_id = $this->fieldID . "_tmp";
     SJB_DB::query('DELETE FROM uploaded_files WHERE id=?s', $file_id);
     $this->property_info['value'] = $file_id;
     $upload_manager = new SJB_UploadFileManager();
     $upload_manager->setFileGroup("video");
     $upload_manager->setUploadedFileID($file_id);
     // CHECK FILE BEFORE UPLOAD
     if (!empty($this->property_info['max_file_size'])) {
         $upload_manager->setMaxFileSize($this->property_info['max_file_size']);
     }
     if (!$upload_manager->isValidUploadedVideoFile($this->fieldID)) {
         return $upload_manager->getError();
     }
     $saved_file_name = $upload_manager->uploadFile($this->fieldID);
     if ($saved_file_name === false) {
         return $upload_manager->getError();
     }
     $filename = SJB_BASE_DIR . '/files/video/' . $saved_file_name;
     $base_name = substr($saved_file_name, 0, strrpos($saved_file_name, "."));
     $ext = substr($saved_file_name, 1 + strrpos($saved_file_name, "."));
     if ($ext == 'flv') {
         $t_outfile = SJB_BASE_DIR . '/files/video/' . $base_name . '.flv_';
         $outfile = SJB_BASE_DIR . '/files/video/' . $base_name . '.flv';
         $this->convert_media($filename, $t_outfile, 640, 480, 32, 22050);
         if (!$upload_manager->fileExists($base_name . '.flv_', true)) {
             $upload_manager->deleteUploadedFileByID($file_id);
             return $upload_manager->getError();
         }
         $upload_manager->deleteUploadedFileByID($file_id);
         rename($t_outfile, $outfile);
     } else {
         $outfile = SJB_BASE_DIR . '/files/video/' . $base_name . '.flv';
         $this->convert_media($filename, $outfile, 640, 480, 32, 22050);
         if (!$upload_manager->fileExists($base_name . '.flv', true)) {
             $upload_manager->deleteUploadedFileByID($file_id);
             return $upload_manager->getError();
         }
         $upload_manager->deleteUploadedFileByID($file_id);
     }
     $filename = SJB_BASE_DIR . '/files/video/' . $base_name . '.flv';
     $img = SJB_BASE_DIR . '/files/video/' . $base_name . '.png';
     $this->grab_image($filename, $img, "00:00:03", 'png', 640, 480);
     $upload_manager->registNewFile($file_id, $base_name . '.flv');
     return true;
 }