From ec12ccc8526dba7481580d7e10507ac65fa24323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Wed, 30 Mar 2022 19:14:21 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=82=A2?= =?UTF-8?q?=E3=83=83=E3=83=97=E3=83=AD=E3=83=BC=E3=83=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- helper/upload.php | 105 ++++++++++++++++++++++++++++++++++++++++++- helper/uuid.php | 12 +++++ src/upload/index.php | 16 +++++++ ui/upload/index.php | 4 ++ 4 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 helper/uuid.php create mode 100644 src/upload/index.php create mode 100644 ui/upload/index.php diff --git a/helper/upload.php b/helper/upload.php index e333e2d..f7a54ef 100644 --- a/helper/upload.php +++ b/helper/upload.php @@ -1,3 +1,106 @@ = ($bit * $bit * $bit * $bit * $bit)) { +//dd(5); + $size = $byte / ($bit * $bit * $bit * $bit * $bit); + $res = $iso ? 'TiB' : 'TB'; + } + else if ($byte >= ($bit * $bit * $bit * $bit)) { +//dd(4); + $size = $byte / ($bit * $bit * $bit * $bit); + $res = $iso ? 'TiB' : 'TB'; + } + else if ($byte >= ($bit * $bit * $bit)) { +//dd(3); + $size = $byte / ($bit * $bit * $bit); + $res = $iso ? 'GiB' : 'GB'; + } + else if ($byte >= ($bit * $bit)) { +//dd(2); + $size = $byte / ($bit * $bit); + $res = $iso ? 'MiB' : 'MB'; + } + else if ($byte >= $bit) { +//dd(1); + $size = $byte / $bit; + $res = $iso ? 'KiB' : 'kB'; + } +//dd($size); + + return number_format($size, 2).' '.$res; + } + + function getmimetype (string $fname): string|null { + $i = 0; + + foreach ($_FILES as $v) { + if ($fname == $v['name'][$i]) { + return $v['type'][$i]; + } + + $i++; + } + + return null; + } + + function verifyupload (): array { + $res = []; + $i = 0; + + foreach ($_FILES as $file) { + if ($file['error'][$i] != 0) { + $err = ''; + switch ($file['error'][$i]) { + case 1: $err = 'php.iniでの「upload_max_filesize」値が超えています。ファイルサイズ:'.humanreadablesize($file['size'][$i]); break; + case 2: $err = 'HTMLフォームの「MAX_FILE_SIZE」値が超えています。ファイルサイズ:'.humanreadablesize($file['size'][$i]); break; + case 3: $err = 'ファイルの部分の失敗です。'; break; + case 4: $err = 'ファイルをアップロード出来ません。'; break; + case 5: $err = '不明'; break; + case 6: $err = '仮フォルダがありません。'; break; + case 7: $err = 'uploadフォルダに書き込めません。'; break; + case 8: $err = '拡張子がありません。'; break; + } + + $res[$file['name'][$i]] = $err; + } + + $i++; + } + + return $res; + } + + function loliupload (array $files): bool { + $dir = __DIR__.'/../public/static/upload/'; + $fname = ''; + + if (!file_exists($dir)) { + mkdir($dir, 0777); + } + + do { + $fname = uuid().'.'.fileextension($files['name'][0]); + } while (file_exists($dir.$fname)); + + if (move_uploaded_file($files['tmp_name'][0], $dir.$fname)) { + return true; + } + + return false; + } ?> diff --git a/helper/uuid.php b/helper/uuid.php new file mode 100644 index 0000000..dc222b0 --- /dev/null +++ b/helper/uuid.php @@ -0,0 +1,12 @@ + diff --git a/src/upload/index.php b/src/upload/index.php new file mode 100644 index 0000000..09c8ad9 --- /dev/null +++ b/src/upload/index.php @@ -0,0 +1,16 @@ + diff --git a/ui/upload/index.php b/ui/upload/index.php new file mode 100644 index 0000000..f7fa116 --- /dev/null +++ b/ui/upload/index.php @@ -0,0 +1,4 @@ +
+ + +