Unggah file kode sumber php

Tutorial ini menunjukkan bagaimana Anda dapat meng-upload file dari berbagai format termasuk. zip,. pdf,. docx,. ppt, serta file gambar melalui form menggunakan PHP untuk disimpan dalam folder di server kami

Kami juga akan mencatat nama file yang diunggah dan info terkait seperti nama file, ukuran, dan jumlah unduhan di tabel database

Buat folder proyek PHP baru dan beri nama  unggah-berkas-unduh . Buat subfolder di dalam folder ini bernama unggahan (di sinilah file unggahan kita akan disimpan),  dan sebuah file bernama index.php .

indeks. php adalah tempat kita akan membuat form upload file kita. Buka dan masukkan kode ini di dalamnya.

indeks. php .

<?php include 'filesLogic.php';?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <link rel="stylesheet" href="style.css">
    <title>Files Upload and Download</title>
  </head>
  <body>
    <div class="container">
      <div class="row">
        <form action="index.php" method="post" enctype="multipart/form-data" >
          <h3>Upload File</h3>
          <input type="file" name="myfile"> <br>
          <button type="submit" name="save">upload</button>
        </form>
      </div>
    </div>
  </body>
</html>

Ini adalah bentuk yang sangat sederhana yang hanya membutuhkan bidang masukan untuk file kami dan tombol unggah.  

Di bagian kepala, kami menautkan ke gaya kami. file css untuk memberikan beberapa gaya pada formulir kita. Buat file itu di root aplikasi kita dan tambahkan kode CSS ini ke dalamnya

gaya. css .

form {
  width: 30%;
  margin: 100px auto;
  padding: 30px;
  border: 1px solid #555;
}
input {
  width: 100%;
  border: 1px solid #f1e1e1;
  display: block;
  padding: 5px 10px;
}
button {
  border: none;
  padding: 10px;
  border-radius: 5px;
}
table {
  width: 60%;
  border-collapse: collapse;
  margin: 100px auto;
}
th,
td {
  height: 50px;
  vertical-align: center;
  border: 1px solid black;
}
_

 

 

Di bagian atas index. php, kami menyertakan  filesLogic. php . Ini adalah file yang berisi semua logika untuk menerima file yang kami kirim dan menyimpannya ke folder uploads serta menyimpan informasi file di database. Mari buat file ini sekarang.

fileLogic. php .

<?php
// connect to the database
$conn = mysqli_connect('localhost', 'root', '', 'file-management');

// Uploads files
if (isset($_POST['save'])) { // if save button on the form is clicked
    // name of the uploaded file
    $filename = $_FILES['myfile']['name'];

    // destination of the file on the server
    $destination = 'uploads/' . $filename;

    // get the file extension
    $extension = pathinfo($filename, PATHINFO_EXTENSION);

    // the physical file on a temporary uploads directory on the server
    $file = $_FILES['myfile']['tmp_name'];
    $size = $_FILES['myfile']['size'];

    if (!in_array($extension, ['zip', 'pdf', 'docx'])) {
        echo "You file extension must be .zip, .pdf or .docx";
    } elseif ($_FILES['myfile']['size'] > 1000000) { // file shouldn't be larger than 1Megabyte
        echo "File too large!";
    } else {
        // move the uploaded (temporary) file to the specified destination
        if (move_uploaded_file($file, $destination)) {
            $sql = "INSERT INTO files (name, size, downloads) VALUES ('$filename', $size, 0)";
            if (mysqli_query($conn, $sql)) {
                echo "File uploaded successfully";
            }
        } else {
            echo "Failed to upload file.";
        }
    }
}

Di bagian atas file ini, kami terhubung ke database tetapi kami belum membuatnya. Ayo lakukan itu sekarang

Buat database baru bernama manajemen file . Di bawah database ini, buat tabel bernama files  dan berikan kolom berikut.

  • id - INT
  • nama - VARCHAR(255)
  • ukuran - INT
  • download

Sekarang buka index. php di browser Anda. Bagi saya, saya akan menuju ke http. //localhost/file-unggah-unduh/unduh. php.

Klik pada bidang input file dan pilih file apa pun dari mesin Anda untuk diunggah.  

Catatan. Bergantung pada konfigurasi php Anda, file Anda mungkin gagal diunggah jika ukurannya melebihi nilai upload_max_filesize yang ditetapkan di php Anda. file ini. Anda selalu dapat mengonfigurasi info ini di php Anda. file ini. Tingkatkan nilai  post_max_size dan  upload_max_filesize  .

Setelah memilih file Anda, Anda dapat mengklik tombol unggah. Jika semuanya berjalan lancar, file Anda akan diunggah ke folder uploads di proyek Anda dan rekor baru akan dibuat di files table in the database containing the filename, size, and downloads count.

Sekarang file kita telah diunggah. Anda dapat memeriksa folder unggahan dan tabel basis data Anda untuk mengonfirmasi bahwa itu berhasil. Mari kita tampilkan agar pengguna dapat melihatnya dan mengkliknya untuk mengunduhnya. Pertama, kita perlu mengambil info file dari database.

Buka filesLogic. php dan tambahkan 3 baris kode ini tepat di bawah baris tempat kita terhubung ke database.

<?php
// connect to database
$conn = mysqli_connect('localhost', 'root', '', 'file-management');

$sql = "SELECT * FROM files";
$result = mysqli_query($conn, $sql);

$files = mysqli_fetch_all($result, MYSQLI_ASSOC);

Ini memilih semua informasi file dari database dan menyetelnya ke variabel array yang disebut $files

Sekarang buat file bernama downloads. php di folder root aplikasi kita dan tambahkan kode ini di dalamnya.

mengunduh. php .

<?php include 'filesLogic.php';?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="style.css">
  <title>Download files</title>
</head>
<body>

<table>
<thead>
    <th>ID</th>
    <th>Filename</th>
    <th>size (in mb)</th>
    <th>Downloads</th>
    <th>Action</th>
</thead>
<tbody>
  <?php foreach ($files as $file): ?>
    <tr>
      <td><?php echo $file['id']; ?></td>
      <td><?php echo $file['name']; ?></td>
      <td><?php echo floor($file['size'] / 1000) . ' KB'; ?></td>
      <td><?php echo $file['downloads']; ?></td>
      <td><a href="downloads.php?file_id=<?php echo $file['id'] ?>">Download</a></td>
    </tr>
  <?php endforeach;?>

</tbody>
</table>

</body>
</html>
_

 Sekarang di halaman ini, informasi file dari database dicantumkan masing-masing beserta ukurannya dalam KB dan jumlah unduhan. Ada juga tombol unduh untuk setiap file. Yang tersisa sekarang adalah kode yang benar-benar mendownload file dari folder uploads kita. Ayo segera tulis kodenya.

Buka fileLogic. php lagi dan tambahkan kode ini di akhir file

fileLogic. php .


// Downloads files
if (isset($_GET['file_id'])) {
    $id = $_GET['file_id'];

    // fetch file to download from database
    $sql = "SELECT * FROM files WHERE id=$id";
    $result = mysqli_query($conn, $sql);

    $file = mysqli_fetch_assoc($result);
    $filepath = 'uploads/' . $file['name'];

    if (file_exists($filepath)) {
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename=' . basename($filepath));
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize('uploads/' . $file['name']));
        readfile('uploads/' . $file['name']);

        // Now update downloads count
        $newCount = $file['downloads'] + 1;
        $updateQuery = "UPDATE files SET downloads=$newCount WHERE id=$id";
        mysqli_query($conn, $updateQuery);
        exit;
    }

}

Saat kami mencantumkan file, setiap tombol unduh (atau lebih tepatnya, tautan unduhan) memiliki parameter bernama file_id  yang dilampirkan padanya. Jadi ketika Anda mengklik tautan unduhan suatu file, id file itu dikirim ke filesLogic. php dan diambil oleh potongan kode yang baru saja kita tambahkan sekarang.

Kode kemudian mengambil info file tertentu dari database menggunakan parameter file_id dan kemudian menyimpan info file dalam variabel bernama $file. Using PHP's file_exists() method with the full path to our file as an argument we check that the file actually exists in our uploads folder. Then we proceed to set some headers and finally respond with the file to the user using the readFile() di PHP.

Setelah file diunduh, kami memperbarui jumlah unduhan untuk file tersebut di database.  

Kesimpulan

Itu saja dengan mengunggah dan mengunduh file. Anda dapat menyesuaikannya lebih lanjut untuk membuat aplikasi PHP yang keren. Terima kasih banyak telah mengikuti. Beri tahu saya pendapat Anda tentang artikel ini di bagian komentar di bawah, jika Anda berkenan

Bagaimana cara mengunggah dan mengunduh file kode sumber PHP dan MySQL?

Buat folder proyek PHP baru dan beri nama file-upload-download. Buat subfolder di dalam folder ini bernama unggahan (di sinilah file unggahan kita akan disimpan), dan sebuah file bernama index. php. Ini adalah bentuk yang sangat sederhana yang hanya membutuhkan bidang masukan untuk file kami dan tombol unggah

Bagaimana cara kerja pengunggahan file PHP?

Skrip PHP dapat digunakan dengan formulir HTML untuk memungkinkan pengguna mengunggah file ke server. Awalnya file diunggah ke direktori sementara dan kemudian dipindahkan ke tujuan target dengan skrip PHP . Pengguna membuka halaman yang berisi formulir HTML yang menampilkan file teks, tombol telusuri, dan tombol kirim.

Bagaimana cara mengunggah file PDF dalam folder menggunakan PHP?

Formulir HTML . php" – Ini mereferensikan skrip PHP yang akan menangani pengunggahan file di backend. method="post" – Ini memberi tahu tindakan browser yang akan digunakan formulir saat mengirim file ke server (untuk unggahan, ini hampir selalu merupakan tindakan POST, terkadang PUT)

Bagaimana cara mengunduh file yang diunggah dari database di PHP?

php $nama= $_GET['nama']; . Transfer Berkas'); . aplikasi/octet-stream'); . lampiran;