Ada beberapa topik yang akan dibahas di sini.
Formulir
Untuk mengupload file, ubah atribut form enctype.
<form action="insert.php" method="post" enctype="multipart/form-data">
:
</form>
Menyimpan file
Anda bisa menyimpan file dalam database, atau hanya sebagai file dalam sistem disk server. Apa pun yang Anda pilih, tidak perlu membagi file ke dalam baris-barisnya. Simpan file sebagai satu kesatuan.
Baca entri ini yang membahas topik.
Cukuplah untuk mengatakan di sini bahwa bidang basis data Anda harus jenis dan ukuran yang sesuai untuk menampung file.
Secara pribadi, saya penggemar menyimpan file di disk, dan nama file di database.
Penanganan unggahan file
Anda dapat menyimpan file di suatu tempat di disk. Ini bukan cara terbaik untuk melakukannya, tetapi yang paling sederhana untuk didemonstrasikan. Ada cukup banyak contoh di SO, misalnya Cara Mengunggah &Menyimpan File dengan Nama yang Diinginkan
$info = pathinfo($_FILES['upload']['name']);
$ext = $info['extension']; // get the extension of the file
$newname = "newname.".$ext;
$target = 'mydocs/'.$newname;
move_uploaded_file( $_FILES['upload']['tmp_name'], $target);
Mengunduh file Agar file ditampilkan dan diunduh, cukup cetak isinya ke browser.
ob_start();
// do things. See below
ob_clean();
flush();
readfile($file);
ob_flush();
Ini akan menampilkan file dan mungkin membingungkan browser. Untuk memberi tahu browser agar menangani file sebagai dokumen Word, Anda harus mengirim header yang sesuai ke browser sebelum mengirim file.
ob_start();
if(isset($_REQUEST['dlink']))
{
$file = $_REQUEST['dlink'];
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
ob_flush();