Bagaimana saya bisa mengunduh gambar dari database di php?

Pada artikel ini, kami akan menunjukkan kepada Anda, bagaimana Anda dapat menyimpan gambar BLOB dalam database MySQL menggunakan PHP. Anda juga dapat mengunduh gambar BLOB. Untuk mengunggah file ke server dan menyimpan jalurnya di database MySQL, Anda dapat mengikuti tutorial kami ini

Struktur tabel

Jalankan kode berikut di file index.php_ Anda untuk membuat tabel yang diperlukan yang akan menampung semua gambar BLOB yang disimpan

Jalankan file Anda dan Anda akan melihat tabel baru dibuat di phpMyAdmin Anda

Simpan gambar BLOB di MySQL

Pertama, Anda perlu membuat bidang input tempat Anda dapat mengunggah gambar

	

Upload Image

_

Buat file bernama upload.php dan tulis kode berikut di dalamnya

Jalankan kode sekarang dan Anda akan ditampilkan kolom input dan tombol kirim. Pilih file gambar dan tekan tombol kirim, jika semuanya berjalan dengan baik, Anda akan melihat pesan sukses. Kemudian Anda dapat memeriksa di database Anda, baris baru akan dibuat, gambar akan disimpan sebagai file blob dan nama file gambar akan disimpan di kolom name

Tampilkan semua gambar BLOB Tersimpan

Untuk menampilkan semua file BLOB yang disimpan, Anda perlu menjalankan kode berikut

	

name; ?>

Ini akan menampilkan semua file yang disimpan dalam urutan menurun (terbaru ke terlama) dalam paragraf. Itu juga akan menampilkan tag jangkar yang ketika diklik akan mengunduh file

Unduh gambar BLOB dari MySQL

Untuk mengunduh file Blob, cukup buat file bernama download.php dan tulis kode berikut di dalamnya

type);
	echo $row->image;
?>
_

Silakan dan klik nama file dari daftar, Anda akan melihat file itu dibuka di browser di tab baru. Anda cukup menekan Ctrl + S untuk mengunduh file di sistem Anda. Dengan menggunakan metode ini, Anda juga dapat menyimpan file Anda dari akses langsung dari URL. Karena file tidak disimpan secara fisik di mana pun di server, file tersebut tidak akan dapat diakses langsung dari URL

Dan karena file tersebut hanya dapat diakses melalui fungsi PHP, Anda dapat memberikan ketentuan tambahan seperti mengizinkan pengunduhan file hanya untuk pengguna premium, dll

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 .




  
    
    Files Upload and Download
  
  
    

Upload File


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 .

 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.

_

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 .





  
  
  Download files



ID Filename size (in mb) Downloads Action
Download
_

 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 mendapatkan gambar dari database di php?

Periksa apakah pengguna memilih file gambar untuk diunggah. Ambil konten file gambar dengan tmp_name menggunakan fungsi file_get_contents() PHP . Masukkan konten biner dari gambar ke dalam database menggunakan PHP dan MySQL. Tampilkan status pengunggahan gambar kepada pengguna.

Bagaimana cara mengunduh gambar dalam kode php?

a-z]$/i', $file)) { $filepath = "gambar/". $berkas; . Transfer Berkas'); . aplikasi/octet-stream'); . lampiran; . nama dasar($filepath)

Bagaimana cara mengunduh file dari database di php?

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

Bagaimana cara mengambil jalur gambar dari database dan ditampilkan di php?

php if(isset($_GET['id']) && $_GET['id'] > 0) { // koneksi database, untuk mendapatkan data pengguna beserta gambar $servername = "localhost";