Laman

Kamis, 03 Januari 2013

Cara Copy File Melalui PHP dan HTML

Tutorial saya kali ini akan menjelaskan bagaimana cara melakukan penyalinan (copy) file melalui kode PHP dan HTML. Kebanyakan suatu file disalin menggunakan perintah yang telah disediakan dari sistem operasinya misalnya dengan menekan tombol CTRL+C kemudian CTRL+V atau klik kanan pilih Copy kemudian pilih Paste.Namun bagaimana caranya menyalin suatu file melalui aplikasi web PHP?

Fungsi bawaan PHP: copy()
Sebenarnya hanya dengan sebuah fungsi internal bawaan dari PHP yakni copy() sudah cukup untuk melakukan penyalinan file. Cukup sertakan nama file sumber dan tujuan sebagai argumen saat memanggil fungsi copy() tersebut. Berikut contohnya:
copy("/home/husnanlabs/contoh/file1.php", "/home/husnanlabs/contoh/file2.php");

Anda perlu menyertakan path file (seperti kode di atas) jika file yang ingin disalin atau file salinannya tidak berada pada satu folder dengan file php untuk keperluan penyalinan file ini.

Kode di atas tidaklah interaktif. Anda harus merubah argumennya tiap kali file disalin. Untuk itu diperlukanlah sebuah form HTML untuk memudahkan penyalinan file melalui web browser.

Copy file melalui PHP dan HTML
Copy file melalui PHP dan HTML


Pengaturan Hak Akses (permission) Folder Tujuan
Sebelumnya jika Anda menggunakan sistem operasi Linux, pastikan bahwa path file tujuan dapat diakses dalam hal ini dapat dipakai sebagai tempat penyalinan file (writtable). Sebagai contoh mudahnya, Anda bisa mengatur hak akses (permission) folder tujuan dengan kode akses 777 atau rwx (read-write-execute). Contohnya dengan mengatur permission folder tujuan tersebut dengan perintah:
chmod 777 /home/husnanlabs/contoh

Bisa juga melalui fungsi PHP: chmod()

Membuat Tampilan Web Menggunakan HTML
Kode HTML di sini dipakai untuk menunjang sisi interaktifitas pengguna. Dengan memanfaatkan elemen <input> yakni dengan type file dan text, Anda dapat memilih file melalui kotak dialog untuk memilih suatu file kemudian dengan menuliskan path file-folder tujuannya pada kotak yang telah disediakan sebagai nama file salinannya. Berikut contoh lengkap kode HTML-nya:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>husnanlabs.blogspot.com</title>
  </head>
  <body>
    <form method="post" action="" enctype="multipart/form-data">
      <table>
        <tr>
          <td><label for="fileSumber">Path file sumber</label></td>
          <td><input type="file" name="fileSumber" /></td>
        </tr>
        <tr>
          <td><label for="txtFolder">Path file tujuan</label></td>
          <td>
            <input type="text" name="txtFolder" />
            <input type="submit" name="btSalin" value="Salin" />
          </td>
        </tr>
      </table> 
    </form>
  </body>
</html>

Prinsip kerja dari kode HTML di atas sangatlah mirip dengan proses upload file ke server, namun dalam contoh ini kita jadikan bentuk tersebut sebagai proses penyalinan file. Jadi saat tombol btSalin diklik, file yang dipilih melalui kotak dialog "File Upload" akan dikirim ke server dalam bentuk kode binary yang telah ditentukan melalui atribut enctype="multipart/form-data" pada elemen form. Untuk proses penyalinan filenya kita perlu kode PHP.

Copy File Melalui PHP dan HTML
Sekarang Anda memerlukan kode PHP untuk memproses file yang telah dipilih melalui kode HTML di atas. Berikut potongan kode PHP-nya:
<?php
$pathFileSumber = $_FILES["fileSumber"]["tmp_name"];
$pathFileTujuan = $_POST["txtFolder"];

if (isset($_POST["btSalin"])) {
  if (copy($pathFileSumber, $pathFileTujuan)) {
    echo "File telah berhasil disalin.";
  }
  else echo "Terjadi kegagalan penyalinan file. ";
}
?>

Untuk mengambil file temporary yang telah diupload, Anda dapat menggunakan variabel $_FILES["fileSumber"]["tmp_name"]. Variabel tersebut berisi link ke file yang Anda pilih tadi dalam bentuk file temporary yang akan dihapus secara otomatis jika file tersebut sudah tidak diperlukan lagi.

Untuk memeriksa apakah tombol btSalin telah diklik, Anda dapat menggunakan fungsi isset(). Jika tombol tersebut telah diklik maka fungsi tersebut mengembalikan nilai true. Selanjutnya fungsi copy() akan menerima dua path file-folder yang berasal dari variabel $pathFileSumber dan $pathFileTujuan. Kedua file tersebut digunakan sebagai argumen bagi fungsi copy().

Berikut kode selengkapnya (PHP dan HTML):
<?php
$pathFileSumber = $_FILES["fileSumber"]["tmp_name"];
$pathFileTujuan = $_POST["txtFolder"];

if (isset($_POST["btSalin"])) {
  if (copy($pathFileSumber, $pathFileTujuan)) {
    echo "File telah berhasil disalin.";
  }
  else echo "Terjadi kegagalan penyalinan file. ";
}
?>

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>husnanlabs.blogspot.com</title>
  </head>
  <body>
    <form method="post" action="" enctype="multipart/form-data">
      <table>
        <tr>
          <td><label for="fileSumber">Path file sumber</label></td>
          <td><input type="file" name="fileSumber" /></td>
        </tr>
        <tr>
          <td><label for="txtFolder">Path file tujuan</label></td>
          <td>
            <input type="text" name="txtFolder" />
            <input type="submit" name="btSalin" value="Salin" />
          </td>
        </tr>
      </table> 
    </form>
  </body>
</html>

Semoga bermanfaat.

© 2013 husnanlabs.blogspot.com

Tidak ada komentar:

Poskan Komentar