Some text some message..
Some text some message..
Some text some message..
Some text some message..
  • Beranda
  • »
  • Artikel
  • »
  • Upload File Menggunakan Library Jquery Form Dengan Status Bar

Upload File Menggunakan Library Jquery Form Dengan Status Bar

previous Previous Page

Upload file merupakan proses untuk mengirimkan file dalam berbagai format file berupa dokumen teks, gambar, audio maupun video menuju server. Data file pada proses upload dapat dikirimkan secara langsung ataupun lewat perantara AJAX tanpa harus melakukan refresh pada halaman utama. Fungsi AJAX akan melakukan proses pengiriman data secara background atau dibalik layar. Hal lain yang juga bisa disertakan adalah penambahan informasi kemajuan atau progress pengiriman file dalam bentuk progress bar ataupun status bar.

Penambahan progress bar pada pengiriman file atau uploading file secara langsung ke server tentu saja tidak bisa dilakukan. Penambahan progress bar hanya bisa dilakukan dengan perantara AJAX.

Pada artikel kali ini saya akan menguraikan bagaimana mengirimkan file dengan menggunakan library Jquery Form. Jquery Form merupakan library yang digunakan untuk melakukan pengiriman data baik itu teks biasa maupun data dalam bentuk file menuju server. Jquery Form menerapkan konsep sistem AJAX yang akan mengirimkan data secara di balik layar. Penerapan AJAX pada Jquery Form agak berbeda dengan penerapan AJAX yang pada umumnya harus mendeskripsikan nilai data elemen HTML melalui script javascript terlebih dulu, lalu mengirimkannya ke server. Jquery Form tidak menerapkan hal ini, namun script pada Jquery Form akan secara langsung menarik seluruh data input yang berada di dalam elemen tag <form> dan memasukkannya pada script Jquery Form untuk dikirimkan menuju server.

Jquery Form dapat anda peroleh dan download pada https://github.com/jquery-form/form.

Membuat File Index

File index digunakan sebagai halaman utama bagi pengguna untuk memasukkan input data berupa file. File yang dapat dimasukkan bisa dalam bentuk teks, dokumen, gambar maupun video. Jadi tidak perlu adanya pembatasan dengan format file yang akan dikirimkan. Pada elemen tag <form> menggunakan atribut method "post" dan action "upload.php". Atribut ini harus disertakan karena Jquery Form akan melakukan pengumpulan data melalui atribut yang disertakan pada elemen tag form tersebut. Kemudian sebagai informasi progress yang sedang berjalan, beberapa elemen tag <div> juga perlu ditambahkan.

Berikut halaman index.php :

PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<!DOCTYPE html>
<html>
<head>
<title>Upload File With Jquery Form</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link href="style.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/jquery-form/form@4.3.0/dist/jquery.form.min.js" integrity="sha384-qlmct0AOBiA2VPZkMY3+2WqkHtIQ9lSdAsAn5RUJD/3vA5MKDgSGcdmIv4ycVxyn" crossorigin="anonymous"></script>
</head>
<body>
<h1>Upload File With Jquery Form</h1>
<form method="post" id="myForm" action="upload.php" enctype="multipart/form-data">
   <p>Please select a file</p>
   <div class="file_container">
   <p><input type="file" name="upload_file" class="file" ></p>
   <p><button type="submit" class="btn btn-primary" id="btn_submit"><span class="glyphicon glyphicon-arrow-up"></span> Upload File</button></p>
   </div>
   <div class='progress_container' id="progress_container">
   <img src='loading.gif' class='loading' id='loading'/>
   <div class='bar' id='bar'></div>
   <div class='percent' id='percent'></div>
   </div>
   <div class="bytes_progress" id="bytes_progress">
   Please wait while uploading yours file..<br>
   Uploading : <span id="byte_position"></span> of <span id="total_byte"></span>
   </div>
   <div class="upload_info" id="upload_info"></div>
</form>
<script>
$(document).ready(function(){
   $('#btn_submit').click(function(){
     var file_val = $('.file').val();
     if(file_val == ""){
        alert("Please select a file");
        return false;
     }else{
        $('#myForm').ajaxForm({
        beforeSubmit: function() {
          $('#progress_container').css("display","block");
          $('#bytes_progress').css("display","block");
          $('#upload_info').css("display","block");
          var percentVal = '0%';
          $('#bar').css("width",percentVal);
          $('#percent').html(percentVal);
          console.log("percentval0 : " + percentVal);
        },
        uploadProgress: function(event, position, total, percentComplete) {
          var percentVal = percentComplete + '%';
          $('#bar').css("width",percentVal);
          $('#percent').html(percentVal);
          $('#byte_position').html(formatBytes(position));
          $('#total_byte').html(formatBytes(total));
          console.log("percentval : " + percentVal);
          console.log("position : " + formatBytes(position));
          console.log("total : " + formatBytes(total));
        },
        success: function() {
          $('#progress_container,#progress_bytes').css("display","none");
          $('.file').val("");
        },
        complete: function(xhr) {
          console.log("xhr : " + xhr);
          if(xhr.responseText){
          $('#upload_info').html(xhr.responseText);
          }
        }
     });
     }
   });
});
const formatBytes = (bytes, decimals = 2) => {
   if (bytes === 0) {
     return '0 Bytes';
   }
   const k = 1024;
   const dm = decimals < 0 ? 0 : decimals;
   const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
   const i = Math.floor(Math.log(bytes) / Math.log(k));
   return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
}
</script>
</body>
</html>

Penataan element HTML-nya menggunakan style.css :

CSS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
body{ 
padding: 20px
}
form{
   padding: 10px;
   background: #71EFA3;
   border-radius: 10px;
}
.progress_container{
   display:none;
   position:relative;
   width:400px;
   height:20px;
   border: 1px solid #ddd;
   padding: 1px;
   border-radius: 3px;
}
.loading{
   position:absolute;
   display:inline-block;
   width:16px;
   top:1px;
   left:4%;
}
.bar{
   background-color: #DA0037;
   width:0%;
   height:20px;
   border-radius: 3px;
}
.percent {
   position:absolute;
   display:inline-block;
   font-weight:bold;
   top:1px;
   left:48%;
}
.bytes_progress{
   display:none;
}
#bytes_progress span{
   color:navy;
}
.upload_info{
   display:none;
}
.upload_info img{
   height:220px;
   width:auto;
   margin:10px;
}

Penjelasan :
Pada file index.php, agar library Jquery Form dapat digunakan, kita harus menyertakan library tersebut dengan menautkan linking script Jquery dan juga Jquery Form terlebih dahulu (baris ke-6). Jquery form akan bekerja dengan baik pada setiap form HTML dengan cara menunjuk form tersebut dengan menggunakan ID form. Atribut ID form ID "myForm" digunakan sebagai identitas bagi form agar form tersebut dapat dieksekusi melalui Jquery Form. Atribut method "post" dan atribut action "upload.php" juga harus disertakan.

Kemudian input dengan type file digunakan sebagai input data dari pengguna dalam bentuk file. Atribut name "upload_file" merupakan nama elemen tag yang akan digunakan sebagai nama bagi wadah file yang akan dikirimkan menuju server. Lalu elemen tag <div> dengan id "progress_container" digunakan sebagai wadah bagi informasi progress pengiriman file. Kontainer div tersebut berisi image loader, bar dan juga persentase bar yang mana isi progressnya diambil langsung dari hasil proses AJAX pada Jquery Form. Jika proses upload file sudah berhasil ataupun gagal, maka hasil teks keberhasilan pengiriman file akan ditampilkan didalam elemen div dengan id "upload_info".

Pada Javascript-nya, Jquery Form akan menginisialisasi form yang sudah diberikan ID tertentu. Di sini Jquery Form akan mengeksekusi form dengan ID "myForm" melalui metode $('#myForm').ajaxForm({ });. Di dalam metode tersebut terdapat berbagai fungsi yang dapat disertakan untuk memanipulasi tampilan sesuai dengan nilai yang didapatkan selama proses pengiriman data file pada server. Fungsi tersebut di antaranya seperti beforeSubmit (kondisi sebelum penekanan tombol submit), uploadProgress (kondisi sedang proses pengiriman data), success (kondisi saat data berhasil dikirimkan pada server), dan complete (kondisi saat data berhasil dikirimkan dan AJAX selesai dieksekusi).

Pengisian nilai dari kemajuan progress bar, dapat mengambil nilai data kembalian dari fungsi uploadProgress yaitu function(event, position, total, percentComplete). Nilai position artinya posisi dari byte file yang sedang dikirim, total artinya nilai total byte file yang akan dikirim, percentComplete artinya nilai persentase byte file yang sedang dalam proses pengiriman.

Membuat halaman Upload File

Halaman upload.php digunakan sebagai tempat pemroses data yang sudah dikirimkan pengguna melalui Jquery Form. Pada halaman ini data file yang berhasil dikirimkan pada server akan disimpan pada folder "upload". Nilai kembalian akan dikirim dalam bentuk gambar. Namun jika proses penyimpanan mengalami kegagalan, maka sistem akan mengirimkan nilai text "Uploading file is failed".

Berikut halaman upload.php :

PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$folder="uploads/";
if(!is_dir($folder)){
   mkdir($folder);
}
$move = move_uploaded_file($_FILES["upload_file"]["tmp_name"], $folder.$_FILES["upload_file"]["name"]);
if($move){
   $fileTypes = array('jpg', 'jpeg', 'gif', 'png');
   $fileParts = pathinfo($_FILES['upload_file']['name']);
   echo '<div>File has uploaded successfully..</div>';
   if (in_array(strtolower($fileParts['extension']), $fileTypes)) {
     echo '<img src="'.$folder."".$_FILES["upload_file"]["name"].'">';
     exit();
   }
}else{
   echo '<div>Uploading failed..</div>';
   exit();
}
?>

Penjelasan :
Pada file upload.php, folder atau direktori tujuan sebagai wadah bagi file yang akan dikirim adalah folder upload. Perintah mkdir($folder) akan membuat folder dengan nama "upload/" jika folder yang bersangkutan belum dibuat. Kemudian move_uploaded_file digunakan untuk menyimpan file dari pengguna pada server. Jika file berhasil disimpan, maka nilai File has uploaded successfully akan diberikan disertai gambar (img) jika file berbentuk gambar. Jika file gagal disimpan, maka nilai kembalian Uploading failed akan dikirimkan.

Hasil Output

Tampilan saat halaman dimuat pertama kali pada browser :

upload file menggunakan jquery form dengan status bar

Tampilan saat pengguna sudah melakukan seleksi file :

upload file menggunakan jquery form dengan status bar

Tampilan saat proses pengiriman file sedang berlangsung (onprogress), terlihat gambar loader yang bergerak dan juga progress bar :

upload file menggunakan jquery form dengan status bar

Tampilan saat file berhasil dikirimkan ke server dengan status berhasil :

upload file menggunakan jquery form dengan status bar

Berikut tampilan video keseluruhan proses uploading file dengan menggunakan Jquery Form :

Upload Multiple File Menggunakan Library Jquery Form

Pengiriman file pada penjelasan di atas adalah untuk satu file saja. Lalu bagaimana jika file yang akan dikirimkan oleh pengguna lebih dari satu atau bahkan puluhan? Anda tidak perlu khawatir karena library Jquery Form juga support untuk mengirimkan file secara multiple file. Agar fitur ini dapat dimanfaatkan, anda perlu membuat lagi beberapa buah elemen tag <input> jenis file dan silahkan beri nama elemen tersebut dengan namanya sendiri-sendiri.

Namun saya tidak akan menambahkan beberapa buah elemen tag <input> type file seperti diatas. Cukup satu buah saja elemen <input> jenis file namun dengan tambahan atribut multiple "true". Atribut ini akan memungkinkan pengguna untuk melakukan seleksi beberapa file sekaligus sesuai dengan keperluan. Sehingga pengguna tidak perlu melakukan klik berkali-kali untuk memasukkan file yang lainnya. Atribut name disini harus menggunakan akhiran "[]", hal ini untuk mewakili nama dalam bentuk nilai array yang akan digunakan nantinya pada sisi server.

Berikut file index.php dengan penambahan atribut input jenis file menjadi multiple "true" :

PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<!DOCTYPE html>
<html>
<head>
<title>Upload File With Jquery Form</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link href="style.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/jquery-form/form@4.3.0/dist/jquery.form.min.js" integrity="sha384-qlmct0AOBiA2VPZkMY3+2WqkHtIQ9lSdAsAn5RUJD/3vA5MKDgSGcdmIv4ycVxyn" crossorigin="anonymous"></script>
</head>
<body>
<h1>Upload File With Jquery Form</h1>
<form method="post" id="myForm" action="upload.php" enctype="multipart/form-data">
   <p>Please select a file</p>
   <div class="file_container">
   <p><input type="file" name="upload_file[]" class="file" multiple="true"></p>
   <p><button type="submit" class="btn btn-primary" id="btn_submit"><span class="glyphicon glyphicon-arrow-up"></span> Upload File</button></p>
   </div>
   <div class='progress_container' id="progress_container">
   <img src='loading.gif' class='loading' id='loading'/>
   <div class='bar' id='bar'></div>
   <div class='percent' id='percent'></div>
   </div>
   <div class="bytes_progress" id="bytes_progress">
   Please wait while uploading yours file..<br>
   Uploading : <span id="byte_position"></span> of <span id="total_byte"></span>
   </div>
   <div class="upload_info" id="upload_info"></div>
</form>
<script>
$(document).ready(function(){
   $('#btn_submit').click(function(){
     var file_val = $('.file').val();
     if(file_val == ""){
        alert("Please select a file");
        return false;
     }else{
        $('#myForm').ajaxForm({
        beforeSubmit: function() {
          $('#progress_container').css("display","block");
          $('#bytes_progress').css("display","block");
          $('#upload_info').css("display","block");
          var percentVal = '0%';
          $('#bar').css("width",percentVal);
          $('#percent').html(percentVal);
          console.log("percentval0 : " + percentVal);
        },
        uploadProgress: function(event, position, total, percentComplete) {
          var percentVal = percentComplete + '%';
          $('#bar').css("width",percentVal);
          $('#percent').html(percentVal);
          $('#byte_position').html(formatBytes(position));
          $('#total_byte').html(formatBytes(total));
          console.log("percentval : " + percentVal);
          console.log("position : " + formatBytes(position));
          console.log("total : " + formatBytes(total));
        },
        success: function() {
          $('#progress_container,#progress_bytes').css("display","none");
          $('.file').val("");
        },
        complete: function(xhr) {
          console.log("xhr : " + xhr);
          if(xhr.responseText){
          $('#upload_info').html(xhr.responseText);
          }
        }
     });
     }
   });
});
const formatBytes = (bytes, decimals = 2) => {
   if (bytes === 0) {
     return '0 Bytes';
   }
   const k = 1024;
   const dm = decimals < 0 ? 0 : decimals;
   const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
   const i = Math.floor(Math.log(bytes) / Math.log(k));
   return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
}
</script>
</body>
</html>

Penataan elemen HTML-nya menggunakan style.css :

CSS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
body{ 
padding: 20px
}
form{
   padding: 10px;
   background: #71EFA3;
   border-radius: 10px;
}
.progress_container{
   display:none;
   position:relative;
   width:400px;
   height:20px;
   border: 1px solid #ddd;
   padding: 1px;
   border-radius: 3px;
}
.loading{
   position:absolute;
   display:inline-block;
   width:16px;
   top:1px;
   left:4%;
}
.bar{
   background-color: #DA0037;
   width:0%;
   height:20px;
   border-radius: 3px;
}
.percent {
   position:absolute;
   display:inline-block;
   font-weight:bold;
   top:1px;
   left:48%;
}
.bytes_progress{
   display:none;
}
#bytes_progress span{
   color:navy;
}
.upload_info{
   display:none;
}
.upload_info img{
   height:220px;
   width:auto;
   margin:10px;
}

Penjelasan :
Pada file index.php, Agar pengguna dapat menggunakan fitur multiple file upload, Input type file perlu diubah dari kondisi normal (single selection) menjadi pemilihan file secara ganda (multiple file selection). Caranya dengan menyertakan atribut multiple="true" (baris ke-15). Dan atribut name juga harus dinamai ulang dalam bentuk nama array yaitu dengan memberikan karakter open-close square bracket "[]" misalnya "upload_file[]". Penamaan ini akan digunakan pada proses penangkapan data multiple file pada sisi server.

File upload.php digunakan untuk menangkap data dalam bentuk mulitple file dan menyimpannya pada sisi server. Berikut isi file upload.php :

PHP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$folder = "uploads/";
if(!is_dir($folder)){
   mkdir($folder);
}
for($x=0; $x<count($_FILES['upload_file']['name']); $x++){
   $move = move_uploaded_file($_FILES["upload_file"]["tmp_name"][$x], $folder.$_FILES["upload_file"]["name"][$x]);
   if($move){
     $fileTypes = array('jpg', 'jpeg', 'gif', 'png');
     $fileParts = pathinfo($_FILES['upload_file']['name'][$x]);
     $no = $x+1;
     echo '<div>File ' . $no . ' has uploaded successfully..</div>';
     if (in_array(strtolower($fileParts['extension']), $fileTypes)) {
        echo '<img src="'.$folder."".$_FILES["upload_file"]["name"][$x].'">';
     }
   }else{
     echo '<div>Uploading file ' . $no . 'failed..</div>';
   }
}
?>

Penjelasan :
Pada file upload.php, data yang dikirim pada halaman index akan ditangkap satu per satu dengan metode perulangan loop for. Data yang berhasil disimpan akan memberikan nilai balik berupa gambar yang dapat dilihat oleh pengguna. Jika gagal, sistem akan mengirikan pesan kegagalan pada file yang tidak berhasil disimpan pada sisi server.

Tampilan video penuh proses uploading multiple file dengan menggunakan library Jquery Form

Source Code

Silahkan download source code beserta file pendukung pada tutorial ini.

Demikian tutorial bagaimana cara melakukan upload file menggunakan library Jquery Form dengan dilengkapi status bar. Semoga bermanfaat .

   0   1.560

Kategori : tag iconhtml - tag iconcss - tag iconjavascript - tag iconjquery - tag iconphp - tag iconajax - tag iconupload

facebooktwitterwhatapplinkedinpinterest

previous Previous Page

Tinggalkan Balasan

Nama Pengguna* :

Email* :

 

Mengirim Komentar

Setiap pengunjung situs ini dapat memposting komentar disini, namun tidak semua komentar dapat ditampilkan. Gunakan kalimat baku bahasa Indonesia yang mudah dimengerti. Dilarang memposting kalimat yang berisi ujaran kebencian, SARA, pornografi, perjudian dan spam. Komentar harus sesuai dengan topik. Untuk bahasan lainnya yang lebih mendalam dapat menggunakan sarana forum. Anda dapat mengirimkan suatu pertanyaan dan member lainnya akan menjawab pertanyaan Anda.
close

News Letters

Silahkan masukkan email Anda untuk berlangganan informasi kami

Polling

1. Apakah website ini menambah pengetahuan Anda?
 Ya
 Tidak
 Tidak Tahu
2. Seberapa sering Anda mengunjungi website ini?
 Sering
 Jarang
 Tidak Pernah
3. Apakah penilaian Anda terhadap website ini, jika melihat dari segi konten/isi?
 Sangat Bagus
 Bagus
 Cukup Bagus
 Kurang Bagus
4. Apakah penilaian Anda terhadap website ini, jika melihat dari segi tampilan?
 Sangat Bagus
 Bagus
 Cukup Bagus
 Kurang Bagus
5. Untuk meningkatkan kualitas website ini, Apakah saran Anda?

 


Visitor Live Chat

Silahkan anda memberikan masukkan chat (obrolan) pada fasilitas chat ini. Konten bebas, sopan dan menghargai pendapat orang lain..

 _Dicky (06 Mar 2021 at 03:24 pm)

Said : Oops, It's nice content

 rizky yuda (07 Mar 2021 at 12:30 pm)

Said : Konten cukup menambah wawasan...

 suryadi (13 Mar 2021 at 06:46 pm)

Said : Boleh request artikel cara koneksi database msyql ke php..

 Nettie Rutherfo (08 Apr 2021 at 12:30 pm)

Said : Auto

 Tedy (29 Mei 2021 at 12:09 pm)

Said : nice blog and articles..

 Ms. Doyle Mann (02 Jun 2021 at 09:56 pm)

Said : card

 flowrie_skylee (12 Jun 2021 at 01:24 pm)

Said : nice content

 Nelson Schaefer (12 Jul 2021 at 04:01 pm)

Said : JSON

 ooppp (18 Jul 2021 at 11:44 pm)

Said : 000popooppi

 Mrs. Jeff Boehm (01 Agt 2021 at 11:01 am)

Said : fuchsia

 dharma (07 Sept 2021 at 05:16 pm)

Said : ini support PHP 8?

 admin (12 Sept 2021 at 12:50 pm)

Said : #dharma masih dalam ruang lingkup PHP versi 7.
Namun untuk ke depannya akan dipertimbangkan agar support PHP 8, jika perubahan dari PHP 7 ke PHP 8 memang dirasa sangat signifikan.

 sadas (13 Jan 2022 at 09:48 am)

Said : Hello

 sutiyono (15 Jan 2022 at 09:36 am)

Said : konten cukup menarik.

 Fuad (08 Mar 2022 at 05:00 pm)

Said : Maksih bang kontennya, sangat membantu.

 admin (10 Mar 2022 at 12:18 pm)

Said : #Fuad Sama sama bang.. terima kasih sudah mampir di blog ini..

 Ferdian (09 Mei 2022 at 11:31 pm)

Said : bang bisa tolong buatkan contoh tamplate kirim email verifikasi gak?

 admin (10 Mei 2022 at 09:44 pm)

Said : Bang #Ferdian, artikelnya belum dibuat. Tapi ada kesamaan konsep yang dapat ditemukan pada halaman : Membuat Form Newsletters Interaktif Dengan Kode Verifikasi Dikirim Via Email,
Silahkan download source code dan file penunjangnya di sana. dan coba kembangkan untuk mengirimkan verifikasi via email untuk penggunaan yang lainnya.

 Abror (11 Jun 2022 at 09:08 am)

Said : Hallo min mau tanya kenapa script yang di konten teknik grabbing tidak bisa dibuka di laptop saya?

 admin (12 Jun 2022 at 12:11 am)

Said : #Abror stuck-nya dibagian mana bang? kalau localhost bisa aktifkan curl pada file php.ini dengan cara menghilangkan semicolon pada ;extension=php_curl.dll. Jika hosting online, dapat langsung dijalankan. cUrl dapat mengambil konten dan menampilkannya secara langsung pada halaman web.

 admin (12 Jun 2022 at 10:29 am)

Said : #Abror Silahkan akses artikel Menyalin konten suatu website teknik grabbing dengan native PHP, jika mengalami kesulitan dengan aktivasi cURL.. Terima kasih.

 SYAHRUL (23 Jun 2022 at 09:40 pm)

Said : oknull

 bang (26 Jun 2022 at 07:55 pm)

Said : bang caranya biar upload file dengan ekstensi tertentu di php gimana bang?

 admin (02 Jul 2022 at 11:34 am)

Said : #bang ??# Silahkan akses halaman Membatasi Upload File Dengan Format Tertentu Melalui Atribut HTML, Javascript Dan PHP. Pembatasan dapat dilakukan via HTML dengan menambahkan atribut accept, via javascipt dan juga via PHP script di sisi server.. have a nice day 😍😍 🤩..

 modas (04 Jul 2022 at 03:47 pm)

Said : halo

 Geoww (15 Agt 2022 at 11:45 pm)

Said : Tolong buat tutorial auto insert mysql, saat discaner kak, dan ditampilkan total yg m***k ke databasenya.

 Dita Sihombing (13 Sept 2022 at 02:12 pm)

Said : Dalam implementasi Digital Signature pada sistem untuk dapat signing and verify gimana caranya kak, tolong buat tutorial nya dong kak

Visitor Name
Email

 I'm not a robot