Skip to content

Instantly share code, notes, and snippets.

@erowsika
Last active November 19, 2021 12:33
Show Gist options
  • Save erowsika/3995369b0440a90fd1253877dc352f9d to your computer and use it in GitHub Desktop.
Save erowsika/3995369b0440a90fd1253877dc352f9d to your computer and use it in GitHub Desktop.
<?php
$eror = false;
$pesan = 'Maaf';
//type file yang bisa diupload
$file_type = [
'jpg',
'jpeg',
'gif',
'bmp',
'png',
'jpg',
'jpeg',
'gif',
'bmp',
'png',
'jpg',
'jpeg',
'gif',
'bmp',
'png'
];
//tukuran maximum file yang dapat diupload
$max_size = 2097152; // 2mb to bytes
//Mulai memorises data
$t = time(); // generate timestamp untuk identifikasi file unik
$folder = __DIR__ . '/upload/foto/'; // gunakan selalu absolute path demi keamanan
$file_name1 = basename($_FILES['data_upload1']['name']); // filter treversal path demi keamanan
$file_name2 = basename($_FILES['data_upload2']['name']); // filter treversal path demi keamanan
$file_name3 = basename($_FILES['data_upload3']['name']); // filter treversal path demi keamanan
$file_siz1 = $_FILES['data_upload1']['size'];
$file_siz2 = $_FILES['data_upload2']['size'];
$file_siz3 = $_FILES['data_upload3']['size'];
//cari extensi file dengan menggunakan api php
$extensi1 = pathinfo($file_name1, PATHINFO_EXTENSION);
$extensi2 = pathinfo($file_name2, PATHINFO_EXTENSION);
$extensi3 = pathinfo($file_name3, PATHINFO_EXTENSION);
$file_name1 = 'ARSIP1_' . $t . '.' . $extensi1;
$file_name2 = 'ARSIP2_' . $t . '.' . $extensi2;
$file_name3 = 'ARSIP3_' . $t . '.' . $extensi3;
//check apakah type file sudah sesuai
if (!in_array($extensi1, $file_type) && !in_array($extensi2, $file_type) && !in_array($extensi3, $file_type)) {
$eror = true;
$pesan .= '- Type file yang anda upload tidak sesuai<br />';
}
if ($file_siz1 > $max_size && $file_siz2 > $max_size && $file_siz3 > $max_size) {
$eror = true;
$pesan .= '- Ukuran file melebihi batas maximum<br />';
}
//check ukuran file apakah sudah sesuai
if ($eror == true) {
echo '<div id="eror">' . $pesan . '</div>';
} else {
//mulai memproses upload file
if (move_uploaded_file($_FILES['data_upload1']['tmp_name'], $folder . $file_name1) &&
move_uploaded_file($_FILES['data_upload2']['tmp_name'], $folder . $file_name2) &&
move_uploaded_file($_FILES['data_upload3']['tmp_name'], $folder . $file_name3)
) {
//catat nama file ke database
$catat = "insert into file_upload(`folder`, `nama_file1`, `nama_file2`, `nama_file3`) values ('$folder', '$file_name1', '$file_name2', '$file_name3')";
if ($conn->query($catat) === TRUE) {
$pesan = "Data Berhasil Disimpan";
} else {
$pesan = "Error: " . $conn->error;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment