Rumah pembangunan bahagian belakang tutorial php Teknologi muat naik dan muat turun fail dalam PHP

Teknologi muat naik dan muat turun fail dalam PHP

May 10, 2023 pm 10:31 PM
Muat naik fail Muat turun fail pengaturcaraan bahasa php

PHP ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web. Ia dicirikan oleh kemudahan pembelajaran, skalabiliti yang kuat dan kitaran pembangunan yang singkat, jadi ia disukai secara meluas oleh pembangun. Dalam pembangunan web, muat naik dan muat turun fail adalah keperluan biasa, dan PHP menyediakan beberapa fungsi dan kelas terbina dalam untuk membantu kami melaksanakan fungsi ini dengan mudah. Artikel ini akan memperkenalkan teknologi muat naik dan muat turun fail dalam PHP.

1. Teknologi muat naik fail

  1. Borang HTML

Dalam HTML, kita boleh menggunakan atribut jenis teg input untuk menjadi "fail" untuk create a Elemen borang muat naik fail adalah seperti berikut:

<form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="fileToUpload" id="fileToUpload">
  <input type="submit" value="上传文件" name="submit">
</form>
Salin selepas log masuk

Perlu diingatkan bahawa borang perlu diserahkan menggunakan kaedah POST dan atribut enctype perlu ditetapkan kepada "multipart/form-data" supaya borang boleh menyokong muat naik fail. Pada masa yang sama, kita perlu mencipta elemen input dengan atribut nama "fileToUpload". Nilai atribut ini akan digunakan dalam kod PHP seterusnya untuk mendapatkan fail yang dimuat naik.

  1. Pemprosesan PHP

Selepas pengguna menyerahkan borang untuk memuat naik fail, kami perlu memprosesnya di latar belakang. Dalam PHP, kita boleh menggunakan tatasusunan super global $_FILES untuk mendapatkan fail yang dimuat naik.

<?php
$target_dir = "./uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// 检查文件是否是图片
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}

// 检查文件是否已经存在
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

// 检查文件大小
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

// 允许上传的文件类型
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

// 如果所有检查都通过,上传文件
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file.";
  }
}
?>
Salin selepas log masuk

Dalam kod di atas, kami mula-mula mentakrifkan direktori $target_dir untuk menyimpan fail yang dimuat naik, dan kemudian menjana laluan fail sasaran $target_file berdasarkan nama fail yang dimuat naik oleh pengguna dan $target_dir. Kemudian, kami melakukan beberapa siri semakan pada fail yang dimuat naik, seperti:

  • Semak sama ada fail itu ialah fail imej
  • Semak sama ada fail itu sudah wujud
  • Semak fail Sama ada saiznya terlalu besar
  • Semak sama ada jenis fail yang dimuat naik dibenarkan

Akhir sekali, jika semua semakan lulus, kami menggunakan fungsi move_uploaded_file untuk mengalihkan fail yang dimuat naik dari direktori tmp ke $ Lokasi yang ditentukan oleh target_file.

2. Teknologi muat turun fail

Muat turun fail secara amnya dibahagikan kepada dua cara Satu ialah memuat turun fail statik (seperti gambar, fail teks, fail audio dan video, dll.), yang adalah agak mudah; Yang lain ialah memuat turun fail yang dijana secara dinamik, yang agak menyusahkan.

  1. Muat turun fail statik

Dalam PHP, kami boleh memuat turun fail melalui fungsi header(), contohnya:

$file = "./downloads/test.txt";

// 设置HTTP头信息以告诉浏览器下载文件
header("Content-disposition: attachment;filename=".basename($file));
header("Content-type: application/octet-stream");
header("Content-Length: ".filesize($file));
header("Pragma: no-cache");
header("Expires: 0");

// 将文件内容读取并输出给浏览器
readfile($file);
Salin selepas log masuk

Di atas Dalam kod, kami mula-mula menentukan fail $file dan menggunakan fungsi header() untuk menetapkan maklumat pengepala HTTP. Antaranya, Content-disposition menentukan nama fail yang dimuat turun, Content-type menentukan jenis fail, Content-Length menentukan saiz fail, dan Pragma and Expires digunakan untuk menghalang penyemak imbas daripada menyimpan cache fail yang dimuat turun.

Akhir sekali, kami menggunakan fungsi readfile() untuk membaca kandungan fail yang ditentukan dan mengeluarkannya kepada pelayar klien, sekali gus merealisasikan fungsi muat turun fail.

  1. Muat turun fail yang dijana secara dinamik

Untuk fail yang dijana secara dinamik, kami perlu menyimpannya ke pelayan dahulu, dan kemudian memuat turunnya sebagai fail statik.

$content = "Hello, world!";
$filename = "test.txt";
$file = "./downloads/".$filename;

// 将内容写入到文件中
$handle = fopen($file, "w");
fwrite($handle, $content);
fclose($handle);

// 返回下载文件给客户端
header("Content-disposition: attachment;filename=".$filename);
header("Content-type: application/octet-stream");
header("Content-Length: ".filesize($file));
header("Pragma: no-cache");
header("Expires: 0");
readfile($file);

// 下载完成后删除服务器端的文件
unlink($file);
Salin selepas log masuk

Dalam kod di atas, kami mula-mula menyimpan fail $content yang dijana secara dinamik ke fail $filename di sisi pelayan, dan kemudian tetapkan maklumat pengepala HTTP melalui fungsi header() untuk membenarkan penyemak imbas klien Muat turun fail. Akhir sekali, kami menggunakan fungsi nyahpaut() untuk memadamkan fail pada bahagian pelayan untuk mengelakkan fail daripada menduduki sumber bahagian pelayan.

Ringkasan

Artikel ini memperkenalkan teknologi muat naik dan muat turun fail dalam PHP. Fungsi ini sangat praktikal untuk membangunkan aplikasi Web. Apabila menggunakan PHP untuk memuat naik dan memuat turun fail, anda perlu memberi perhatian kepada beberapa isu keselamatan, seperti menyemak jenis fail, saiz, nama fail, dll., untuk mengelakkan serangan oleh pengguna berniat jahat. Pada masa yang sama, kita juga harus mencuba yang terbaik untuk mengoptimumkan prestasi muat naik dan muat turun fail, mengurangkan pembaziran sumber pelayan dan pelanggan, dan meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Teknologi muat naik dan muat turun fail dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Operasi pembukaan Python selepas memuat turun fail Operasi pembukaan Python selepas memuat turun fail Apr 03, 2024 pm 03:39 PM

Python menyediakan pilihan berikut untuk membuka fail yang dimuat turun: open() function: buka fail menggunakan laluan dan mod yang ditentukan (seperti 'r', 'w', 'a'). Pustaka permintaan: Gunakan kaedah muat turun() untuk memberikan nama secara automatik dan membuka fail secara terus. Pustaka Pathlib: Gunakan kaedah write_bytes() dan read_text() untuk menulis dan membaca kandungan fail.

Laksanakan muat naik dan muat turun fail dalam dokumen Workerman Laksanakan muat naik dan muat turun fail dalam dokumen Workerman Nov 08, 2023 pm 06:02 PM

Untuk melaksanakan muat naik dan muat turun fail dalam dokumen Workerman, contoh kod khusus diperlukan. Pengenalan: Workerman ialah rangka kerja komunikasi rangkaian tak segerak PHP berprestasi tinggi yang ringkas, cekap dan mudah digunakan. Dalam pembangunan sebenar, muat naik dan muat turun fail adalah keperluan fungsi biasa Artikel ini akan memperkenalkan cara menggunakan rangka kerja Workerman untuk melaksanakan muat naik dan muat turun fail, dan memberikan contoh kod khusus. 1. Muat naik fail: Muat naik fail merujuk kepada operasi memindahkan fail pada komputer tempatan ke pelayan. Yang berikut digunakan

Bagaimana untuk menggunakan fungsi PHP untuk memuat naik dan memuat turun lampiran untuk menghantar dan menerima e-mel? Bagaimana untuk menggunakan fungsi PHP untuk memuat naik dan memuat turun lampiran untuk menghantar dan menerima e-mel? Jul 25, 2023 pm 08:17 PM

Bagaimana untuk menggunakan fungsi PHP untuk memuat naik dan memuat turun lampiran untuk menghantar dan menerima e-mel? Dengan perkembangan pesat teknologi komunikasi moden, e-mel telah menjadi cara penting untuk orang ramai berkomunikasi dan menghantar maklumat dalam kehidupan seharian. Dalam pembangunan web, kami sering menghadapi keperluan untuk menghantar dan menerima e-mel dengan lampiran. Sebagai bahasa skrip sebelah pelayan yang berkuasa, PHP menyediakan pelbagai fungsi dan perpustakaan kelas yang boleh memudahkan proses pemprosesan e-mel. Artikel ini akan memperkenalkan cara menggunakan fungsi PHP untuk memuat naik dan memuat turun lampiran untuk menghantar dan menerima e-mel. Emel dihantar dahulu, kami

Cara menggunakan Laravel untuk melaksanakan fungsi muat naik dan muat turun fail Cara menggunakan Laravel untuk melaksanakan fungsi muat naik dan muat turun fail Nov 02, 2023 pm 04:36 PM

Cara menggunakan Laravel untuk melaksanakan fungsi muat naik dan muat turun fail Laravel ialah rangka kerja Web PHP popular yang menyediakan pelbagai fungsi dan alatan untuk menjadikan pembangunan aplikasi Web lebih mudah dan cekap. Salah satu fungsi yang biasa digunakan ialah muat naik dan muat turun fail. Artikel ini akan memperkenalkan cara menggunakan Laravel untuk melaksanakan fungsi muat naik dan muat turun fail, serta menyediakan contoh kod khusus. Muat naik fail Muat naik fail merujuk kepada memuat naik fail tempatan ke pelayan untuk penyimpanan. Dalam Laravel kita boleh menggunakan muat naik fail

Bagaimana untuk menyelesaikan pengecualian muat naik fail Java (FileUploadException) Bagaimana untuk menyelesaikan pengecualian muat naik fail Java (FileUploadException) Aug 18, 2023 pm 12:11 PM

Cara menyelesaikan pengecualian muat naik fail Java (FileUploadException Satu masalah yang sering dihadapi dalam pembangunan web ialah FileUploadException (pengecualian muat naik fail). Ia mungkin berlaku disebabkan oleh pelbagai sebab seperti saiz fail melebihi had, format fail tidak sepadan atau konfigurasi pelayan yang salah. Artikel ini menerangkan beberapa cara untuk menyelesaikan masalah ini dan menyediakan contoh kod yang sepadan. Hadkan saiz fail yang dimuat naik Dalam kebanyakan senario, hadkan saiz fail

Bagaimana untuk menggunakan gRPC untuk melaksanakan muat naik fail di Golang? Bagaimana untuk menggunakan gRPC untuk melaksanakan muat naik fail di Golang? Jun 03, 2024 pm 04:54 PM

Bagaimana untuk melaksanakan muat naik fail menggunakan gRPC? Buat definisi perkhidmatan sokongan, termasuk permintaan dan mesej respons. Pada klien, fail yang hendak dimuat naik dibuka dan dibahagikan kepada beberapa bahagian, kemudian distrim ke pelayan melalui aliran gRPC. Di bahagian pelayan, ketulan fail diterima dan disimpan ke dalam fail. Pelayan menghantar respons selepas muat naik fail selesai untuk menunjukkan sama ada muat naik berjaya.

Bagaimana untuk mencetuskan muat turun fail apabila mengklik butang HTML atau JavaScript? Bagaimana untuk mencetuskan muat turun fail apabila mengklik butang HTML atau JavaScript? Sep 12, 2023 pm 12:49 PM

Pada masa kini, banyak aplikasi membolehkan pengguna memuat naik dan memuat turun fail. Contohnya, alat pengesanan plagiarisme membenarkan pengguna memuat naik fail dokumen yang mengandungi beberapa teks. Ia kemudian menyemak plagiarisme dan menghasilkan laporan yang boleh dimuat turun oleh pengguna. Semua orang tahu cara menggunakan inputtypefile untuk mencipta butang muat naik fail, tetapi beberapa pembangun tahu cara menggunakan JavaScript/JQuery untuk mencipta butang muat turun fail. Tutorial ini akan mengajar anda pelbagai cara untuk mencetuskan muat turun fail apabila butang HTML atau JavaScript diklik. Gunakan tag <a> HTML dan atribut muat turun untuk mencetuskan muat turun fail apabila butang diklik Setiap kali kami memberikan teg <a>

Memuat Naik dan Memproses Fail dalam Laravel: Mengurus Fail Yang Dimuat Naik Pengguna Memuat Naik dan Memproses Fail dalam Laravel: Mengurus Fail Yang Dimuat Naik Pengguna Aug 13, 2023 pm 06:45 PM

Memuat Naik dan Memproses Fail dalam Laravel: Mengurus Fail Yang Dimuat Naik Pengguna Pengenalan: Muat naik fail ialah keperluan fungsi yang sangat biasa dalam aplikasi web moden. Dalam rangka kerja Laravel, muat naik dan pemprosesan fail menjadi sangat mudah dan cekap. Artikel ini akan memperkenalkan cara mengurus fail yang dimuat naik pengguna dalam Laravel, termasuk pengesahan, penyimpanan, pemprosesan dan paparan muat naik fail. 1. Muat naik fail Muat naik fail merujuk kepada memuat naik fail daripada klien ke pelayan. Dalam Laravel, muat naik fail sangat mudah dikendalikan. pertama,

See all articles