Joywork/engine/classes/WebAppRaiser/WebAppRaiserDocs.php
2026-05-22 21:21:54 +03:00

91 lines
3.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
class WebAppRaiserDocs {
public static function filesDir(){
return $_SERVER['DOCUMENT_ROOT'].'/files/DocsFiles/';
//return '/server/php/files/docs'.'/DocsFiles/';
}
public static function errorCodes()
{
return array(
UPLOAD_ERR_OK => 'Файл загружен',
UPLOAD_ERR_INI_SIZE => 'File is too big to upload',
UPLOAD_ERR_FORM_SIZE => 'File is too big to upload',
UPLOAD_ERR_PARTIAL => 'Файл загружен частично',
UPLOAD_ERR_NO_FILE => 'Не загружено ни одного файла',
UPLOAD_ERR_NO_TMP_DIR => 'На сервере отсутсвует временная директорая для загрузки файла',
UPLOAD_ERR_CANT_WRITE => 'Не получилось записать файл на диск',
UPLOAD_ERR_EXTENSION => 'Этот файл нельзя загрузить на этот сервер',
);
}
public static function getDocs($order_id)
{
$res = WebAppRaiserDB::select('war_files', 'order_id', $order_id);
return $res;
}
public static function renderDocsTable($docsList)
{
$docData = array();
if(empty($docsList)){
return '<p>Нет отправленных документов.</p>';
}
if(!isset($docsList[0]['category'])){
return '<p>Неверный формат списка документов.</p>';
}
foreach($docsList as $docItem) {
$docData[$docItem['category']][] = $docItem;
}
$output = '<div class="row">';
foreach($docData as $category => $category_list){
$output .= '<div class="col col-12 col-md-4"><h3>'.$category.'</h3>';
foreach($category_list as $category_item){
$output .= '<p><a href="/engine/classes/WebAppRaiser/getfile.php?id='.$category_item['object_id'].'&order_id='.$category_item['order_id'].'&fid='.$category_item['fid'].'">'.$category_item['file_name'].'</a></p>';
}
$output .= '<hr/></div>';
}
$output .= '</div>';
return $output;
}
public static function getDocument($fid){
global $user;
$agency = User::getUserAgencyID();
$files_dir = self::filesDir();
$res = WebAppRaiserDB::select('war_files', 'fid', $fid);
if(!empty($res)){
$filename = $res[0]['file_name'];
$filepath = $res[0]['file_path'];
$file = $files_dir.$filepath.$filename;
if(file_exists($file)){
if($res[0]['agency'] == $agency){
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: ".mime_content_type($file));
header("Content-Transfer-Encoding: binary");
readfile($file);
exit;
}
else {
die('access denied');
}
}
}
die('file not found');
}
public static function getCategories()
{
$return = array();
$sql = 'SELECT category FROM `war_files` GROUP BY `category`';
$res = mysql_query($sql);
while ($row = mysql_fetch_assoc($res)) {
$return[$row['category']] = $row['category'];
}
return $return;
}
}