Hướng dẫn how does php file upload work? - tải lên tệp php hoạt động như thế nào?


Với PHP, thật dễ dàng để tải các tệp lên máy chủ.

Tuy nhiên, một cách dễ dàng đến nguy hiểm, vì vậy hãy luôn cẩn thận khi cho phép tải lên tệp!


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

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

Trong tệp "php.ini" của bạn, tìm kiếm chỉ thị file_uploads và đặt nó thành BẬT:


Tạo biểu mẫu HTML

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



& nbsp; & nbsp; chọn hình ảnh để tải lên: & nbsp; & nbsp; & nbsp;
  Select image to upload:
  
 


& nbsp; & nbsp; chọn hình ảnh để tải lên: & nbsp; & nbsp; & nbsp;

  • Một số quy tắc cần tuân theo biểu mẫu HTML ở trên:
  • Đảm bảo rằng biểu mẫu sử dụng Phương thức = "Post"

Biểu mẫu cũng cần thuộc tính sau: Enctype = "Multipart/Form-Data". Nó chỉ định loại nội dung nào sẽ sử dụng khi gửi biểu mẫu

Không có các yêu cầu ở trên, tải lên tệp sẽ không hoạt động.

  • Những điều khác cần chú ý:

Thuộc tính loại = "tệp" của thẻ 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" 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 "Tải lên.php", mà chúng tôi sẽ tạo tiếp theo.

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

Tệp "upload.php" chứa mã để tải lên tệp:
$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;
  }
}
?>

PHP script explained:

  • Tập lệnh PHP giải thích:
  • $ target_dir = "Tải lên/" - 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 (trong trường hợp thấp hơn)

Tiếp theo, kiểm tra xem tệp hình ảnh có phải là hình ảnh thực hay hình ảnh giả không You will need to create a new directory called "uploads" in the directory where "upload.php" file resides. The uploaded files will be saved there.


Lưu ý: Bạn sẽ cần tạo một thư mục mới gọi là "Tải lên" trong thư mục trong đó tệp "tải lên.php" nằm. Các tập tin được 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". Nếu có, một thông báo lỗi được hiển thị và $ uploadok được đặt thành 0:
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}


// kiểm tra xem tệp đã tồn tại (file_exists ($ target_file)) {& nbsp; echo "Xin lỗi, tập tin đã tồn tại."; & nbsp; $ uploadok = 0; }

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

Trường đầu vào 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, một thông báo lỗi sẽ được hiển thị và $ uploadok được đặt thành 0:
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}


// Kiểm tra tệp Sizeif ($ _files ["Filetoupload"] ["size"]> 500000) {& nbsp; echo "Xin lỗi, tập tin của bạn quá lớn."; & nbsp; $ uploadok = 0; }

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

Mã bên dưới 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 cung cấp thông báo lỗi trước khi đặt $ tải lên 0:
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}


// Cho phép một số định dạng tệp nhất định ($ ImageFileType! = "Jpg" && $ ImageFileType! , Các tệp jpeg, png & gif được cho phép. "; & Nbsp; & nbsp; $ uploadok = 0;}

Hoàn thành Tải lên Tập lệnh Php

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

& nbsp; & nbsp; chọn hình ảnh để tải lên: & nbsp; & nbsp; & nbsp;
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;
  }
}

Một số quy tắc cần tuân theo biểu mẫu HTML ở trên:
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

Đảm bảo rằng biểu mẫu sử dụng Phương thức = "Post"
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

Biểu mẫu cũng cần thuộc tính sau: Enctype = "Multipart/Form-Data". Nó chỉ định loại nội dung nào sẽ sử dụng khi gửi biểu mẫu
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

Không có các yêu cầu ở trên, tải lên tệp sẽ không hoạt động.
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.";
  }
}
?>


Những điều khác cần chú ý:

Thuộc tính loại = "tệp" của thẻ 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" bên cạnh điều khiển đầu vào



Tải lên tệp PHP là gì?

Tập lệnh PHP có thể được sử dụng với biểu mẫu HTML để cho phép người dùng tải tệp lên máy chủ. Các tệp ban đầu được tải lên thư mục tạm thời và sau đó chuyển đến đích mục tiêu bằng tập lệnh PHP.. Initially files are uploaded into a temporary directory and then relocated to a target destination by a PHP script.

Php tải lên các tệp ở đâu?

PHP lưu trữ tất cả các tệp tạm thời, bao gồm các tệp được tải lên, trong thư mục tệp tạm thời như được chỉ định trong php.ini.Lưu ý rằng để tải lên, các tệp đó có thể bị xóa ngay khi tập lệnh, tệp được tải lên đã bị chấm dứt (vì vậy trừ khi bạn trì hoãn tập lệnh đó, có lẽ bạn sẽ không thấy tệp được tải lên).in the temporary files directory as specified in the php. ini. Note that for uploads, those files might be removed as soon as the script the file was uploaded to was terminated (so unless you delay that script, you probably won't see the uploaded file).

Chúng ta có thể tải lên các tệp bằng PHP không?

Với PHP, thật dễ dàng để tải các tệp lên máy chủ.Tuy nhiên, một cách dễ dàng đến nguy hiểm, vì vậy hãy luôn cẩn thận khi cho phép tải lên tệp!it is easy to upload files to the server. However, with ease comes danger, so always be careful when allowing file uploads!

Tải lên tệp hoạt động như thế nào?

Để tải dữ liệu lên máy chủ, một lần nữa máy khách sẽ bắt đầu kết nối với máy chủ và sau đó thường gửi yêu cầu bài HTTP có chứa dữ liệu sẽ được tải lên.Máy chủ biết cách xử lý một yêu cầu như vậy và lưu trữ dữ liệu.the client again initiates a connection to the server and then typically sends a HTTP POST request which contains the data to be uploaded. The server knows how to handle such a request and stores the data.