Hướng dẫn PHP

TRANG CHỦ PHP Giới thiệu PHP Cài đặt PHP Cú pháp PHP Nhận xét PHP Các biến PHP PHP Echo / Print Các kiểu dữ liệu PHP Chuỗi PHP Số PHP Toán PHP Hằng số PHP Toán tử PHP PHP If ... Else ... Elseif Chuyển đổi PHP Vòng lặp PHP Các hàm PHP Mảng PHP PHP Superglobals PHP RegEx

Biểu mẫu PHP

Xử lý biểu mẫu PHP Xác thực biểu mẫu PHP Yêu cầu biểu mẫu PHP URL biểu mẫu PHP / E-mail Hoàn thành biểu mẫu PHP

PHP nâng cao

Ngày và giờ trong PHP Bao gồm PHP Xử lý tệp PHP Mở / Đọc tệp PHP Tạo / ghi tệp PHP Tải lên tệp PHP Cookie PHP Phiên PHP Bộ lọc PHP Bộ lọc PHP nâng cao Các chức năng gọi lại trong PHP PHP JSON Ngoại lệ PHP

PHP OOP

PHP OOP là gì Các lớp / đối tượng PHP Trình tạo PHP PHP Destructor Công cụ sửa đổi quyền truy cập PHP Kế thừa PHP Hằng số PHP Các lớp trừu tượng trong PHP Giao diện PHP Đặc điểm PHP Phương thức tĩnh trong PHP Thuộc tính tĩnh của PHP Không gian tên PHP Lặp lại PHP

Cơ sở dữ liệu MySQL

Cơ sở dữ liệu MySQL MySQL Connect MySQL Tạo cơ sở dữ liệu MySQL Tạo bảng MySQL Chèn dữ liệu MySQL Nhận ID cuối cùng MySQL Chèn Nhiều MySQL được chuẩn bị Dữ liệu chọn MySQL MySQL ở đâu MySQL Đặt hàng bởi MySQL Xóa dữ liệu Dữ liệu cập nhật MySQL Dữ liệu giới hạn MySQL

PHP XML

Trình phân tích cú pháp XML PHP Trình phân tích cú pháp PHP SimpleXML PHP SimpleXML - Nhận PHP XML Expat DOM XML PHP

PHP - AJAX

Giới thiệu về AJAX AJAX PHP Cơ sở dữ liệu AJAX AJAX XML Tìm kiếm trực tiếp AJAX Cuộc thăm dò ý kiến ​​của AJAX

Ví dụ về PHP

Ví dụ về PHP Trình biên dịch PHP PHP Quiz Bài tập PHP Chứng chỉ PHP

Tham chiếu PHP

Tổng quan về PHP Mảng PHP Lịch PHP Ngày PHP Thư mục PHP Lỗi PHP Ngoại lệ PHP Hệ thống tập tin PHP Bộ lọc PHP FTP PHP PHP JSON Từ khóa PHP PHP Libxml Thư PHP Toán PHP PHP Misc PHP MySQLi Mạng PHP Kiểm soát đầu ra PHP PHP RegEx PHP SimpleXML Luồng PHP Chuỗi PHP Xử lý biến PHP Trình phân tích cú pháp XML PHP PHP Zip Múi giờ PHP

Tải lên tệp PHP


Với PHP, việc tải các tập tin lên máy chủ rất dễ dàng.

Tuy nhiên, dễ đi kèm với nguy hiểm, vì vậy hãy luôn cẩn thận khi cho phép tải tệp lên!


Định cấu hình Tệp "php.ini"

Đầu tiên, hãy đảm bảo rằng PHP được định cấu hình để cho phép tải tệp lên.

Trong tệp "php.ini" của bạn, hãy tìm kiếm lệnh file_uploadsvà đặt nó thành Bật:

file_uploads = On

Tạo biểu mẫu HTML

Tiếp theo, tạo một biểu mẫu HTML cho phép người dùng chọn tệp hình ảnh mà họ muốn tải lên:

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
  Select image to upload:
  <input type="file" name="fileToUpload" id="fileToUpload">
  <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

Một số quy tắc cần tuân theo cho biểu mẫu HTML ở trên:

  • Đảm bảo rằng biểu mẫu sử dụng method = "post"
  • Biểu mẫu cũng cần thuộc tính sau: enctype = "multiart / form-data". Nó chỉ định loại nội dung sẽ sử dụng khi gửi biểu mẫu

Nếu không có các yêu cầu trên, quá trình tải lên tệp sẽ không hoạt động.

Những điều khác cần lưu ý:

  • Thuộc tính type = "file" của thẻ <input> hiển thị trường đầu vào dưới dạng điều khiển chọn tệp, với nút "Duyệt qua" bên cạnh điều khiển đầu vào

Biểu mẫu ở trên gửi dữ liệu đến một tệp có tên "upload.php", tệp này chúng ta sẽ tạo tiếp theo.



Tạo Tập lệnh PHP Tải lên

Tệp "upload.php" chứa mã để tải lên tệp:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
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;
  }
}
?>

Tập lệnh PHP giải thích:

  • $ target_dir = "uploads /" - chỉ định thư mục nơi tệp sẽ được đặt
  • $ target_file chỉ định đường dẫn của tệp sẽ được tải lên
  • $ uploadOk = 1 chưa được sử dụng (sẽ được sử dụng sau)
  • $ imageFileType giữ phần mở rộng tệp của tệp (chữ thường)
  • Tiếp theo, hãy kiểm tra xem file ảnh là ảnh thật hay ảnh giả

Lưu ý: Bạn sẽ cần tạo một thư mục mới có tên "uploads" trong thư mục chứa tệp "upload.php". Các tệp đã tải lên sẽ được lưu ở đó.


Kiểm tra xem tệp đã tồn tại chưa

Bây giờ chúng ta có thể thêm một số hạn chế.

Đầu tiên, chúng tôi sẽ kiểm tra xem tệp đã tồn tại trong thư mục "tải lên" hay chưa. Nếu đúng như vậy, một thông báo lỗi sẽ hiển thị và $ uploadOk được đặt thành 0:

// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

Giới hạn kích thước tệp

Trường nhập tệp trong biểu mẫu HTML của chúng tôi ở trên được đặt tên là "fileToUpload".

Bây giờ, chúng tôi muốn kiểm tra kích thước của tệp. Nếu tệp lớn hơn 500KB, thông báo lỗi sẽ hiển thị và $ uploadOk được đặt thành 0:

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

Giới hạn loại tệp

Đoạn mã dưới đây chỉ cho phép người dùng tải lên các tệp JPG, JPEG, PNG và GIF. Tất cả các loại tệp khác đều đưa ra thông báo lỗi trước khi đặt $ uploadOk thành 0:

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

Hoàn thành tải lên tập tin PHP Script

Tệp "upload.php" hoàn chỉnh bây giờ trông giống như sau:

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

// Check if image file is a actual image or fake image
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;
  }
}

// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

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

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} 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.";
  }
}
?>

Toàn bộ tham chiếu hệ thống tệp PHP

Để có tài liệu tham khảo đầy đủ về các chức năng của hệ thống tệp, hãy truy cập Tài liệu tham khảo hệ thống tệp PHP hoàn chỉnh của chúng tôi .