/source/application/controller/Master/DocumentController.php
PHP | 198 lines | 168 code | 24 blank | 6 comment | 23 complexity | 02a2e379e1e42ca9b1cd21c87887f778 MD5 | raw file
Possible License(s): LGPL-2.1
- <?php
- class Master_DocumentController extends TvcController
- {
- // specific which menu will be highlighted
- const MENU_ITEM = Parameter::MENU_DOCUMENT;
- public function indexAction()
- {
- $smarty = TVC::load('smarty');
- $bct = new BCT('document');
- $array_files = File::getFileList(File::IS_VISIBLE);
- $array_subject = Subject::getSubjectCodeList();
-
- $smarty->assign('bct', $bct);
- $smarty->assign('array_subject', $array_subject);
- $smarty->assign('array_files', $array_files);
- $smarty->display('master/document_download.html');
- }
- public function downloadFileAction()
- {
- $md5_id = TVC_Request::get('f');
- $file = File::getFileById($md5_id);
- if (!$file){
- exit("File is not available");
- }
- $dir = $file->path;
- $file_name = $dir.$file->file_name;
- if (!file_exists($file_name)){
- exit("File is not available");
- }
- $pathinfo = pathinfo ($file_name);
- $ext = $pathinfo['extension'];
- if ($ext) {
- $ctype = File::$mine_types["$ext"];
- }
-
- if (!$ctype) {
- $ctype="application/force-download";
- }
-
- // set headers
- header("Pragma: public");
- header("Expires: 0");
- header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
- header("Cache-Control: private");
- header("Content-Description: File Transfer");
- header("Content-Type: $ctype");
- header("Content-Disposition: attachment; filename=\"".basename("$file->file_name")."\"");
- header("Content-Transfer-Encoding: binary");
- header("Content-Length: " . @filesize("$file->file_name"));
- $fd = fopen($file_name, 'rb');
-
- if($fd == false)
- {
- die("<font color=red>ERROR: File not found.</font>");
- }
- sleep(1);
- session_write_close();
- ob_flush();
- flush();
-
- while(!feof($fd)) {
- $buffer = fread($fd, 4096);
- print $buffer;
- }
-
- fclose ($fd);
- exit;
- }
- public function uploadAction() {
- $smarty = TVC::load('smarty');
- $code_subject = TVC_Request::get('code_subject');
- $code_class = TVC_Request::get('code_class');
- $bct = new BCT('document_upload');
- $file = new File();
-
- if (TVC_Request::get('act')) {
- $file->code_subject = $code_subject;
- $file->code_class = $code_class;
- $files = $_FILES["files"];
- $file->is_visible = Parameter::$params['IS_VISIBLE_UPLOADED_FILE'];
- if ($file->validateInput($files)) {
- $arr_id = array();
- foreach ($files['name'] as $key=>$filename) {
- if ($filename) {
- $fname = $filename;
- $fextension = '';
- if (strrpos($filename, '.') > 0) {
- $fextension = strtolower(substr($filename, strrpos($filename, '.')+1, strlen($filename)));
- }
- $fsize = $files['size'][$key];
-
- $file->file_type = $fextension;
- $file->file_size = $fsize;
- $file->uploaded_date = date('Y-m-d H:i:s');
- $current_user = unserialize(TVC_Session::get('user_serialize'));
- $file->id_user = $current_user->id;
- if (!Subject::isExistByCode($code_subject)) {
- $code_subject = File::OTHER;
- $file->code_subject = $code_subject;
- }
- $dir = FTP_DOCUMENT_DIR.$code_subject.'/';
- $dir2 = DOCUMENT_DIR.$code_subject.'/';
- $file->path = $dir2;
- $file->name = $filename;
- if($file->insert()) {
- if ($fextension) {
- $filename = substr($filename, 0, strrpos($filename, '.')).'_'.$file->id.'.'.$fextension;
- } else {
- $filename = $filename.'_'.$file->id;
- }
- $arr_id[]= $file->id;
- }
- //if (!is_dir($dir2)) {
- // mkdir($dir2, 0777);
- //}
- //if (@move_uploaded_file($files["tmp_name"][$key], $dir2.$filename)) {
- if (File::uploadFTP($files["tmp_name"][$key], $dir.$filename, $dir, $dir2)) {
- $file->file_name = $filename;
- $file->update();
- } else {
- $file->delete();
- ErrorHandler::add('_MSG_UPLOAD_FAILED');
- }
- }
- }
- TVC::redirect($bct->map['document_upload_success']['url_default'].'id_files/'.implode(",",$arr_id));
- }
- }
-
- $class = Classes::getClassByCode(Parameter::$params['CODE_B2CQ3A']);
-
- $subject = Subject::getSubjectList('', $class->code);
-
- $smarty->assign('bct', $bct);
- $smarty->assign('subject', $subject);
- $smarty->assign('code_subject', $code_subject);
- $smarty->assign('code_class', $code_class);
- $smarty->assign('class', $class);
- $smarty->display('master/document_upload.html');
- }
-
- public function sendAction() {
- $smarty = TVC::load('smarty');
- $id_files = TVC_Request::get('id_files');
- $bct = new BCT('document_upload_success');
- if (!File::isExistsByIds(explode(",",$id_files))) {
- TVC::redirect($bct->getBackLink());
- }
- $email = new Email();
- $email_3a = TVC_Request::get('email_3a');
- $error = false;
- if (TVC_Request::get('act')) {
- $email->content = TVC_Request::get('content');
- $email->subject = TVC_Request::get('subject');
- $email->from_email = TVC_Request::get('from_email');
- $email->to_email = TVC_Request::get('to_email');
- if ($email->validateInput($email_3a)) {
- if($email_3a){
- if ($email->to_email){
- $email->to_email.=",".Parameter::$params['EMAIL_3A'];
- } else {
- $email->to_email.= Parameter::$params['EMAIL_3A'];
- }
- }
- $email->insert();
-
- foreach(explode(",", $id_files) as $id_file) {
- $file_email = new FileEmail();
- $file_email->id_file= $id_file;
- $file_email->id_email= $email->id;
- $file_email->insert();
- }
- $file = File::getFileByIds($id_files);
- $email->sendEmailUpload($email, $file, 'master/mails/upload-mail-'.TVC_MultiLanguage::getLanguage().'.tpl');
- TVC::redirect($bct->getBackLink());
- } else {
- $error = true;
- }
- }
-
- $smarty->assign('bct', $bct);
- $smarty->assign('email_3a', $email_3a);
- $smarty->assign('email', $email);
- $smarty->assign('error', $error);
- $smarty->assign('id_files', $id_files);
- $smarty->display('master/document_upload_success.html');
- }
-
- }