Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan pemprosesan muat naik fail dalam PHP7.0?

Bagaimana untuk melaksanakan pemprosesan muat naik fail dalam PHP7.0?

WBOY
WBOYasal
2023-05-26 08:21:111106semak imbas

Dengan perkembangan era Internet, muat naik fail memainkan peranan yang sangat penting dalam pembangunan laman web. Apabila pengguna perlu memuat naik avatar, foto atau fail lain mereka sendiri, tapak web perlu memproses fail yang dimuat naik. Dalam PHP7.0, cara muat naik fail dikendalikan sedikit berbeza daripada versi sebelumnya. Artikel ini akan memperkenalkan cara untuk melaksanakan pemprosesan muat naik fail dalam PHP7.0.

1. Borang HTML untuk memuat naik fail

Dalam borang HTML, teg 3525558f8f338d4ea90ebf22e5cde2bc Anda perlu menetapkan atribut enctype kepada "multipart/form-data", dan kaedah penyerahan ialah kaedah POST, contohnya:

<form action="upload.php" method="POST" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="上传文件">
</form>

2. PHP memproses fail yang dimuat naik

Dalam PHP, gunakan tatasusunan $_FILES untuk memanipulasi fail yang dimuat naik. Apabila pengguna memilih fail dan menyerahkan borang, tatasusunan $_FILES akan mengandungi maklumat tentang fail yang dimuat naik. Contohnya:

$_FILES['file']['name'] // 文件名
$_FILES['file']['type'] // 文件类型
$_FILES['file']['size'] // 文件大小
$_FILES['file']['tmp_name'] // 临时文件名
$_FILES['file']['error'] // 错误代码

di mana nama fail sementara digunakan untuk membaca kandungan fail yang dimuat naik selepas muat naik selesai. Seterusnya, kami akan membincangkan cara menggunakan maklumat ini untuk memuat naik fail.

3. Muat naik fail dan simpannya ke pelayan

Anda boleh menggunakan fungsi move_uploaded_file() untuk mengalihkan fail yang dimuat naik dari folder sementara ke folder sasaran yang ditentukan. Contohnya:

$target_dir = "uploads/"; // 目标文件夹
$target_file = $target_dir . basename($_FILES["file"]["name"]); // 目标文件路径
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
    echo "文件上传成功";
} else {
    echo "文件上传失败";
}

Perlu diambil perhatian bahawa folder sasaran perlu wujud sebelum menerima fail yang dimuat naik, jika tidak, fungsi move_uploaded_file() akan gagal.

4. Ralat dalam memproses fail yang dimuat naik

Sesetengah ralat mungkin berlaku semasa memuat naik fail, seperti saiz fail yang dimuat naik melebihi saiz yang dipersetujui, kegagalan muat naik, dsb. Kita boleh menggunakan atribut ralat dalam tatasusunan $_FILES untuk mengendalikan ralat ini.

switch ($_FILES["file"]["error"]) {
    case UPLOAD_ERR_OK: // 成功
        break;
    case UPLOAD_ERR_INI_SIZE: // 上传的文件超过了php.ini中的最大约束大小
    case UPLOAD_ERR_FORM_SIZE: // 上传的文件超过了HTML表单中的最大约束大小
        echo "文件太大";
        break;
    case UPLOAD_ERR_PARTIAL: // 文件只有部分被上传
        echo "文件上传失败";
        break;
    case UPLOAD_ERR_NO_FILE: // 没有文件被上传
        echo "请选择文件";
        break;
    case UPLOAD_ERR_NO_TMP_DIR: // 服务器未配置临时目录
    case UPLOAD_ERR_CANT_WRITE: // 无法将文件写入磁盘
    case UPLOAD_ERR_EXTENSION: // 文件不能通过PHP扩展上传
        echo "文件上传失败";
        break;
}

5. Sahkan jenis dan saiz fail yang dimuat naik

Untuk mengelakkan muat naik fail yang tidak sah, kami juga perlu mengesahkan jenis dan saiz fail yang dimuat naik. Contohnya, jika hanya fail jenis imej dibenarkan untuk dimuat naik, anda boleh menggunakan fungsi getimagesize() untuk menentukan jenis fail.

$allowed_types = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF);
$type = exif_imagetype($_FILES["file"]["tmp_name"]);
if (!in_array($type, $allowed_types)) {
    echo "请选择正确的图像类型";
}

Pada masa yang sama, saiz fail perlu disahkan Anda boleh menggunakan fungsi filesize() PHP untuk mendapatkan saiz fail, contohnya:

$max_size = 2 * 1024 * 1024; // 允许上传最大文件大小为2MB
if (filesize($_FILES["file"]["tmp_name"]) > $max_size) {
    echo "文件太大";
}

6

Dalam PHP7.0 , pemprosesan muat naik fail menjadi lebih selamat dan mudah. Anda boleh mendapatkan maklumat fail yang dimuat naik melalui tatasusunan $_FILES, gunakan fungsi move_uploaded_file() untuk menyimpan fail ke pelayan dan mengesahkan jenis dan saiz fail yang dimuat naik untuk memastikan fail yang dimuat naik adalah selamat dan boleh dipercayai.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pemprosesan muat naik fail dalam PHP7.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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