· 8 months ago · Mar 09, 2025, 02:35 PM
1<?php
2/*
3position: functions/
4*/
5function encryptData($strings)
6{
7 global $token; //bisa diganti
8 return openssl_encrypt($strings, "AES-128-ECB", $token);
9}
10function decryptData($strings)
11{
12 global $token; //bisa diganti
13 return openssl_decrypt($strings, "AES-128-ECB", $token);
14}
15
16function divImageAjax($title = "Upload", $encrypted_string)
17{
18 global $numImageAjax;
19 $kodeDiv = sprintf("%03s", $numImageAjax);
20 $numImageAjax++;
21 $json = decryptData($encrypted_string);
22 //echo "<div>$json</div>";
23 $arDetail = json_decode($json);
24 $arDetail->num = $kodeDiv;
25 $encrypted_string = encryptData(json_encode($arDetail));
26 $folderTarget = $arDetail->folder ?? "mydir";
27 $filename = $arDetail->filename ?? "none";
28 $tanggalData = $arDetail->date ?? "2024-12-12";
29 $num = $arDetail->num ?? "001";
30 ?>
31<div><?= $title ?>
32 <input type='file' id='fileAjax<?= $kodeDiv ?>' param='<?= $encrypted_string ?>' />
33 <button type='button' onclick='saveFile("<?= $kodeDiv ?>")'>Upload</button><br/>
34 <span id='infoFileAjax<?= $kodeDiv ?>'> <!--<?= date("d/m/Y H:i:s") ?> -->
35<?= viewAttachment($folderTarget, $filename, $tanggalData, $kodeDiv) ?>
36 </span>
37</div>
38<?php
39}
40function viewAttachment($folderTarget, $filename, $tanggalData, $num = 0)
41{
42 global $folderUpload, $minDateForYear, $password;
43 $folder = folderAttachment($folderTarget, $tanggalData ?? "2024-12-12");
44 $targetFiles = $folder . $filename . ".*";
45 $str = ""; //$str.="$folderTarget, $filename, $tanggalData";
46 $str .= "<ol>";
47 foreach (glob($targetFiles) as $filename) {
48 $ar = [
49 "folder" => $folderTarget, //nama folder didalam folder uploads
50 "filename" => $filename, //sensitive
51 "date" => $tanggalData ?? "2024-12-12", //tanggal data
52 "reload" => microtime(1),
53 "num" => $num,
54 ];
55 $string_to_encrypt = json_encode($ar);
56 $encrypted_string = encryptData($string_to_encrypt);
57 $x= explode("/", $filename);
58
59 $filenameClean = end($x);
60 $str .= "<li>$filenameClean <a onclick='downloadFile(\"$encrypted_string\")' target='_blank' href='#{$ar['reload']}' style='text-decoration:none'
61title='download file'>📋</a><a onclick='deleteFile(\"$num\", \"$encrypted_string\")' href='#' style='text-decoration:none'
62title='delete file'>🗑</a></li>";
63 }
64 $str .= "</ol>";
65 return $str;
66}
67
68function folderAttachment($folderTarget, $tanggalData)
69{
70 global $folderUpload, $minDateForYear, $password;
71 $folder = _SITEDIR_."/".$folderUpload;
72 $debug = [];
73 $aFolder = explode("/", $folderTarget);
74 if ($tanggalData >= $minDateForYear) {
75 if (count($aFolder) == 1) {
76 $aFolder[] = date("_Y", strtotime($tanggalData));
77 } else {
78 $lastFolder = end($aFolder);
79 array_pop($aFolder);
80 $aFolder[] = date("_Y", strtotime($tanggalData));
81 $aFolder[] = $lastFolder;
82 }
83 } else {
84
85 }
86
87 foreach ($aFolder as $folderName) {
88 $folder .= "/".$folderName;
89 if (!is_dir($folder)) {
90 mkdir($folder);
91 }
92 $debug[] = "folder:" . $folder;
93 } //print_r($debug);
94 return $folder."/";
95}
96function uploadAttachment(
97 $sourceFile,
98 $folderTarget,
99 $filename,
100 $ext,
101 $tanggalData
102) {
103 global $folderUpload, $minDateForYear, $password;
104 $folder = folderAttachment($folderTarget, $tanggalData ?? "2024-12-12");
105 $targetFile = $folder . $filename . ".{$ext}";
106 $debug[] = "target:" . $targetFile;
107 copy($sourceFile, $targetFile);
108 return $targetFile;
109}