Kesalahan yang ditampilkan memberi tahu kami dengan tepat mengapa kode gagal. Show Anda mengatakan ini adalah file "dari database". Apakah maksud Anda file tersebut disimpan dalam database, seperti yang saya lakukan di tutorial yang awalnya Anda posting, atau apakah file tersebut ada di sistem file dan lokasinya di database? . ) Jika file tersebut ada di dalam database, maka apa yang Anda lakukan di sana tidak masuk akal. Lihatlah fase #4 dalam tutorial untuk contoh tentang apa yang seharusnya Anda lakukan Jika file ada di sistem file, maka ada langkah-langkah yang harus Anda ambil sebelum mencoba mengirimkannya. Pertama-tama, Anda perlu memverifikasi bahwa file tersebut benar-benar ada sebelum Anda mencoba membacanya. Untuk itu, fungsi file_exists dapat digunakan. Anda tidak boleh mencoba mengirim file tanpa menggunakan fungsi itu untuk memastikan keberadaannya Juga, seperti semua input pengguna, Anda harus memverifikasi bahwa
2 15870 Hai Kesalahan yang ditampilkan memberi tahu kami dengan tepat mengapa kode gagal. Anda mengatakan ini adalah file "dari database". Apakah maksud Anda file tersebut disimpan dalam database, seperti yang saya lakukan di tutorial yang awalnya Anda posting, atau apakah file tersebut ada di sistem file dan lokasinya di database? . ) Jika file tersebut ada di dalam database, maka apa yang Anda lakukan di sana tidak masuk akal. Lihatlah fase #4 dalam tutorial untuk contoh tentang apa yang seharusnya Anda lakukan Jika file ada di sistem file, maka ada langkah-langkah yang harus Anda ambil sebelum mencoba mengirimkannya. Pertama-tama, Anda perlu memverifikasi bahwa file tersebut benar-benar ada sebelum Anda mencoba membacanya. Untuk itu, fungsi file_exists dapat digunakan. Anda tidak boleh mencoba mengirim file tanpa menggunakan fungsi itu untuk memastikan keberadaannya Juga, seperti semua input pengguna, Anda harus memverifikasi bahwa
Sep 3 '12 # hai Atli, terima kasih atas balasannya tetapi saya sudah memilah dengan pengunduhan pengkodean Dan ya itu cara yang salah untuk mengakses file di pengkodean sebelumnya, sekarang saya dapat dengan mudah mengunduhnya langsung dari database Saya akan dibawa ke halaman kosong mana pun tetapi tidak ada file yang akan diunduh, dengan url. http. //localhost/dpo/unduh. php?id=1 Berikut adalah contoh tabel 'files' dari database 'datarepo' di mySQL Jadi pertanyaan saya adalah, bagaimana cara mendapatkan file untuk diunduh? Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi BarandDiposting 10 November 2018 Barand
Diposting 10 November 2018 coba content-disposition. lampiran header('Content-Disposition: attachment; filename="'.basename($file).'"');
Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi wei123Diposting 10 November 2018 wei123
Diposting 10 November 2018 (diedit)
tidak berhasil, unduh. php masih memberikan halaman putih tanpa mengunduh file Sebagai referensi, inilah file unggahan saya (untuk saat ini abaikan sanitasi file) <?php include('config.php'); if(isset($_POST["submitfile"])) { $fileName = $_FILES['file']['name']; $fileSize = $_FILES['file']['size']; $fileError = $_FILES['file']['error']; $fileType = $_FILES['file']['type']; $data = file_get_contents($_FILES['file']['tmp_name']); $fileExt = explode('.', $fileName); $fileActualExt = strtolower(end($fileExt)); $allowed = array('csv','doc','docx','jpg','pdf','png'); if (in_array($fileActualExt, $allowed)){ if ($fileError == 0){ if ($fileSize < 5000000){ $stmt = $db ->prepare("insert into files values('',?,?,?,?)"); $stmt ->bindParam(1,$fileName); $stmt ->bindParam(2,$fileType); $stmt ->bindParam(3,$fileSize); $stmt ->bindParam(4,$data); $stmt ->execute(); echo "File uploaded successfully."; } else { echo "File size is too big."; } } else { echo "There were was an error uploading the file."; } } else { echo "File format not supported."; } } ?> Diedit 10 November 2018 oleh wei123 Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi macgyverDiposting 10 November 2018 macgyver
Diposting 10 November 2018 (diedit) a) umumnya bukan ide yang baik untuk menyimpan file dalam basis data (mendapatkan data besar masuk dan keluar dari basis data adalah masalah. dan dump sql berukuran dua kali lipat karena dilakukan dalam heksadesimal. ) database adalah untuk menyimpan data. sistem file adalah untuk menyimpan file b) jika Anda menyimpan file dalam database, Anda harus menyimpan semua file. jenis gumpalan yang Anda gunakan hanya menampung 64K byte. ukuran file yang diizinkan oleh kode Anda adalah 5M byte (dan akan membutuhkan penanganan khusus untuk menyimpan karena ukuran paket data default adalah 1M byte. ) ukuran sebenarnya dari file pengujian Anda adalah 102k byte, yang kemudian dipotong menjadi 64K saat disimpan c) kode php di download. php mencoba memeriksa keberadaan dan membaca file seolah-olah disimpan di sistem file, bukan di database Diedit 10 November 2018 oleh mac_gyver
Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi wei123Diposting 10 November 2018 wei123
Diposting 10 November 2018 (diedit)
a) Ya saya sangat menyadarinya tetapi proyek saya mengharuskan saya untuk menyimpan file ke dalam database jadi saya tidak punya pilihan di sini b) Apakah ini baik-baik saja? c) Saya telah menghapus blok if else jadi unduh. php sekarang terlihat seperti ini <?php include "config.php"; if(isset($_GET['id'])){ $id = $_GET['id']; $stmt = $db -> prepare("select * from files where id=?"); $stmt->bindParam(1,$id); $stmt->execute(); $data = $stmt -> fetch(); $file = $data['name']; header('Content-Disposition: attachment; filename="'.basename($file).'"'); header('Content-Type:'.$data['mime']); header ('Content-Length:'.filesize($file)); readfile($file); exit; } ?> Tetapi sekarang setiap kali saya mencoba mengunduh sesuatu, saya akan selalu mendapatkan file 322B Diedit 10 November 2018 oleh wei123Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi ginerjmDiposting 10 November 2018 ginerjm
Diposting 10 November 2018 "proyek Anda membutuhkan" agar Anda menyimpan file dalam db?
Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi BarandDiposting 10 November 2018 Barand
Diposting 10 November 2018 Fungsi filesize() dan readfile() keduanya memerlukan file untuk disimpan dalam sistem file Jika Anda menyimpan file dalam database, dari situlah ukuran file dan data file Anda perlu diunduh. (Dan seperti yang ditunjukkan mac_gyver, kolom BLOB hanya menampung 64K. Ubah ke MEDIUMBLOB (16MB) ) Lebih baik lagi, simpan file yang diunggah di server dan simpan metadata hanya di database Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi BarandDiposting 10 November 2018 Barand
Diposting 10 November 2018 Beberapa petunjuk terkait potongan kode pertama di postingan asli Anda (untuk mencantumkan nama file) Kueri Anda adalah $stmt = $db -> prepare("SELECT * FROM files"); _
$stmt = $db->query("SELECT id, name FROM files");
Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi wei123Diposting 10 November 2018 wei123
Diposting 10 November 2018 (diedit) Unduhan yang diperbarui. php <?php include "config.php"; if(isset($_GET['id'])){ $id = $_GET['id']; $stmt = $db->query("SELECT id, name,mime,filesize FROM files"); $stmt->bindParam(1,$id); $stmt->execute(); $data = $stmt -> fetch(); $file = $data['name']; $type = $data['mime']; $size = $data['filesize']; // echo $data['name']."<br>"; // echo $data['mime']."<br>"; // echo $data['filesize']."<br>"; header("Content-Disposition: attachment; filename=$file"); header("Content-Type: $type"); header("Content-Length:$size"); exit; } ?>_
Saat ini, file yang saya unduh hanya berukuran 264 byte
Tabel yang diperbarui
Pesan gema memberi saya <?php <table class ="table"> <thead> <tr> <th>#</th> <th>File</th> <th>Action</th> </tr> </thead> <tbody> <?php include('config.php'); $stmt = $db -> prepare("SELECT * FROM files"); $stmt->execute(); while($row = $stmt->fetch()){ ?> <tr> <td> <?php echo $row["id"]?></td> <td> <?php echo $row["name"]?></td> <td><a href="download.php?id=<?php echo $row["id"]?>" class="btn btn-primary">Download</a></td> </tr> <?php } ?> </tbody> </table> ?>0 Diedit 10 November 2018 oleh wei123 pengeditan kode Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi BarandDiposting 10 November 2018 Barand
Diposting 10 November 2018 Anda juga harus memikirkan untuk mengeluarkan konten file juga. Yang Anda lakukan hanyalah mengirim tajuk Permintaan yang saya berikan kepada Anda adalah di mana Anda mencantumkan file untuk dipilih. Anda tidak dapat menggunakan kueri yang sama setiap kali Anda mengakses database. Kali ini Anda harus memilih catatan yang diperlukan (id = ?) dan mendapatkan semua bidang (termasuk kolom blob) Saya sarankan Anda mengaktifkan pelaporan kesalahan php - Anda seharusnya mendapatkan kesalahan yang memberi tahu Anda bahwa indeks pantomim dan ukuran file tidak ada (karena Anda tidak memilih kolom tersebut) Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi benamenDiposting 10 November 2018 benamen
Diposting 10 November 2018
Ada yang berbau tidak enak di sini Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi BarandDiposting 10 November 2018 Barand
Diposting 10 November 2018 Karena Anda terlalu malas untuk menentukan nama kolom dalam pernyataan SELECT dan INSERT Anda, beberapa di antaranya adalah tebakan. Tapi seharusnya terlihat seperti ini Bagaimana cara mengambil file dari database di PHP?Ambil atau Ambil Data Dari Basis Data di PHP . PILIH nama_kolom DARI nama_tabel $query = mysql_query("pilih * dari namatabel", $koneksi); $koneksi = mysql_connect("localhost", "root", ""); $db = mysql_select_db("perusahaan", $koneksi); $query = mysql_query("pilih * dari karyawan", $koneksi); Bagaimana cara mengunduh file PDF dari database di PHP?Kami akan menggunakan fungsi FPDF libs untuk menghasilkan file pdf dengan header dan footer. . Langkah 1. Kami akan membuat tabel karyawan ke dalam database MySQL Langkah 2. Mari hubungkan database MySQL dengan PHP. Kami akan membuat koneksi. . Langkah 3. Kami akan membuat generate_pdf. php dan tambahkan kode di bawah ini Langkah 4. Kita akan membuat index Bagaimana cara membuat file dapat diunduh dalam PHP?PHP memungkinkan Anda mengunduh file dengan mudah menggunakan fungsi readfile() bawaan. Fungsi readfile() membaca file dan menulisnya ke buffer output. . header('Tipe-Konten. aplikasi/aliran oktet'); header("Pengkodean-Transfer-Konten. utf-8"); Bagaimana cara mengunduh file dari jalur file di PHP?Fungsi readfile() digunakan dalam skrip PHP untuk mengunduh paksa file apa pun dari lokasi saat ini, atau file dengan jalur file. |