Penggunaan fuction unlink di php

Assalamualikum

selamat pagi semua di sini saya akan membuat untuk edit data pada php data yang akan saya edit terdapat foto di dalamnya

berikut form edit data yang saya buat

<div class="modal fade show" tabindex="-1" role="dialog" id="modal-add<?= $data['id_kepala_sekolah'] ?>">
    <div class="modal-dialog modal-md">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Edit Data Kepala Sekolah</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">×</span>
                </button>
            </div>
            <div class="modal-body table-responsive">
                <form action="?admin=logic" method="post" enctype="multipart/form-data">
                    <input type="text" name="id_kepala_sekolah" value="<?= $data['id_kepala_sekolah']; ?>" hidden>
                    <div class="form-group">
                    </div>
                    <div class="form-group">
                        <img src="../assets/img/gallery/<?= $data['foto_kepala_sekolah'] ?>" class="rounded-circle author-box-picture" width="80px" />
                        <input type="hidden" name="previous" value="<?= $data['foto_kepala_sekolah'] ?>" /><br>
                        <label for="">Foto Baru</label>
                        <input type="file" name="foto_kepala_sekolah" class="form-control" value="<?= $data['foto_kepala_sekolah']; ?>" placeholder="Foto" required>
                    </div>
                    <div class="form-group">
                        <label for="">Nama Kepala Sekolah</label>
                        <input type="text" name="nama_kepala_sekolah" value="<?= $data['nama_kepala_sekolah']; ?>" class="form-control">
                    </div>
                    <div class="form-group">
                        <label for="">Sambutan</label>
                        <textarea class="summernote-simple" name="sambutan_kepala_sekolah" id="sambutan_kepala_sekolah"><?= $data['sambutan_kepala_sekolah']; ?></textarea>
                    </div>
                    <div>
                        <button type="submit" name="edit" class="btn btn-primary">Publish</button>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>

dan berikut query editnya

<?php
if (isset($_POST['edit'])) {
    $id_kepala_sekolah = $_POST['id_kepala_sekolah'];
    $foto_kepala_sekolah = $_FILES['foto_kepala_sekolah']['name'];
    $foto_kepala_sekolah_temp = $_FILES['foto_kepala_sekolah']['tmp_name'];
    $nama_kepala_sekolah = $_POST['nama_kepala_sekolah'];
    $sambutan_kepala_sekolah = $_POST['sambutan_kepala_sekolah'];
    $previous = $_POST['previous'];
    $exp = explode(".", $foto_kepala_sekolah);
    $end = end($exp);
    $name = time() . "." . $end;
    $path = "../assets/img/gallery/" . $name;
    $allowed_ext = array("gif", "jpg", "jpeg", "png");
    if (in_array($end, $allowed_ext)) {
        if (unlink($previous)) {
            if (move_uploaded_file($foto_kepala_sekolah_temp, $path)) {
                mysqli_query($conn, "UPDATE `tb_kepala_sekolah` set `nama_kepala_sekolah` = '$nama_kepala_sekolah', `sambutan_kepala_sekolah` = '$sambutan_kepala_sekolah', `foto_kepala_sekolah` = '$path' WHERE `id_kepala_sekolah` = '$id_kepala_sekolah'") or die(mysqli_error());
                echo "<script>alert('User account updated!')</script>";
                header("location:?admin=profile-ks");
            }
        }
    } else {
        echo "<script>alert('Image only')</script>";
    }
}

Pada Query di atas terdapat error seperti berikut "Warning: unlink(1703927515.jpeg): No such file or directory in C:\laragon\www\smpn4silo\smpn4siloadmin\admin\logic.php on line 15"

bisa share solusinya kawan wassalamualikum wr wb

avatar arifrohman
@arifrohman

21 Kontribusi 4 Poin

Diperbarui 4 bulan yang lalu

2 Jawaban:

Jawaban Terpilih

if (isset($_POST['edit'])) {
    // ... kode lain ...

    // Periksa apakah file ada sebelum mencoba menghapus
    if (file_exists("../assets/img/gallery/" . $previous)) {
        unlink("../assets/img/gallery/" . $previous);
    } else {
        error_log("File not found: " . $previous); // Catat error
    }

    // ... kode upload file dan update database ...
}

Perubahan ini memastikan bahwa script Anda mengecek keberadaan file sebelum mencoba menghapusnya dan mencatat error jika file tidak ditemukan. Ini akan membantu menghindari pesan error yang tidak perlu dan menjadikan proses lebih aman.

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 4 bulan yang lalu

Arti error pada metode unlink nya adalah tidak ada file atau folder yang mau dihapus.

Kamu perlu debug lihat isi dari $previous. Pastikan lokasi nya sesuai

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 4 bulan yang lalu

Login untuk ikut Jawaban