<?php
function upload_image($gambar, $tujuan, $conf = null)
{
$config = array(
'default' => null,
'asal' => null,
'maks' => 6000000,
'isEnkripsi' => true,
);
if (!empty($conf))
foreach ($conf as $k => $v)
$config[$k] = $v;
$nama_file = $gambar['name'];
$ukuran_file = $gambar['size'];
$error = $gambar['error'];
$tmp = $gambar['tmp_name'];
$format_sesuai = ['jpg', 'jpeg', 'png'];
$format_file = explode('.', $nama_file);
$format_file = strtolower(end($format_file));
if (!in_array($format_file, $format_sesuai)) {
response(['message' => 'Gagal, Pilih file yang Valid jpg/jpeg/png'], 500);
} elseif ($ukuran_file > $config['maks']) {
response(['message' => 'Gagal, size file yang dipilih terlalu besar'], 500);
} else {
if ($config['isEnkripsi']) {
$nama_image = random(10);
$nama_image .= ".";
$nama_image .= $format_file;
} else
$nama_image = $config['name'] . '.' . $format_file;
try {
move_uploaded_file($tmp, $tujuan . DIRECTORY_SEPARATOR . convert_path($nama_image));
} catch (\Exception $err) {
response(['message' => 'Gagal upload file', 'err' => $err->getMessage()], 500);
}
if (isset($config['sebelum']) && !empty($config['sebelum'])) {
unlink($tujuan . DIRECTORY_SEPARATOR . convert_path($config['sebelum']));
}
return $nama_image;
}
}
|