PHP jQuery

Tính năng tải lên tệp yêu cầu xác thực cần thiết để làm sạch và duy trì dữ liệu người dùng. Việc thực thi đầu vào tệp tải lên không đúng cách sẽ làm tăng lỗ hổng bảo mật. Vì vậy, chúng tôi phải phê duyệt các tệp đã tải lên trước khi lưu chúng trên máy chủ để giảm lỗ hổng

Tải tệp từ máy khách lên máy chủ là một trong những tính năng thiết yếu của bất kỳ ứng dụng PHP nào. Tuy nhiên, việc triển khai các tính năng với bảo mật phù hợp và cấu hình đơn giản có thể khó khăn. Điều đó nói rằng, các nhà phát triển có thể sử dụng một số tập lệnh tải lên tệp PHP để đảm bảo rằng ứng dụng cung cấp các tính năng mà không có bất kỳ vấn đề bảo mật nào

Bài viết này thảo luận về một chiến lược phổ biến mà các nhà phát triển có thể tích hợp trong các dự án của họ. Hơn nữa, bạn sẽ tìm hiểu cách thêm chức năng tải lên tệp PHP vào trang web của mình bằng jQuery, AJAX và MySQL

Kiểm soát tải lên tệp trong PHP là gì?

PHP cho phép bạn tải lên các tệp với một vài dòng mã và tính năng tải lên tệp của nó cho phép bạn tải lên nội dung văn bản và nhị phân. Vì vậy, bạn có toàn quyền kiểm soát tệp được tải lên thông qua xác thực PHP và chức năng vận hành tệp

Một cách khác để kiểm soát tệp tải lên của bạn là thông qua xác thực dữ liệu. Người dùng phải xác thực loại tệp, kích thước và thứ nguyên trước khi tải lên. Tên, kích thước và mục tiêu tạm thời của tệp đã tải lên được lưu trữ trong mảng $_FILES[“image_file”]. Hàm move_uploaded_file của PHP tải tệp lên bằng cách truy cập dữ liệu được lưu trữ trong $_Files superglobal

điều kiện tiên quyết

Tôi giả sử bạn đã cài đặt ứng dụng PHP trên máy chủ web cho ví dụ tải lên tệp PHP này. Thiết lập của tôi bao gồm những điều sau đây

  • PHP7. 1
  • mysql
  • Tệp JQuery/Ajax

Để đảm bảo tôi không bị phân tâm bởi các vấn đề ở cấp độ máy chủ, tôi đã lưu trữ ứng dụng PHP của mình trên các máy chủ được quản lý bởi Cloudways vì ứng dụng này xử lý tất cả các vấn đề ở cấp độ máy chủ và có một devstack xuất sắc ngay lập tức. Bạn cũng có thể dùng thử Cloudways miễn phí mà không cần cung cấp chi tiết thẻ tín dụng của mình

Nhận danh sách công cụ cuối cùng dành cho Nhà phát triển

Chúng tôi sẽ gửi liên kết tải xuống đến hộp thư đến của bạn

Cảm ơn

Sách điện tử của bạn đang trên đường đến hộp thư đến của bạn

Bây giờ, các cấu hình đã sẵn sàng, tiếp theo tôi sẽ làm việc với Tập lệnh tải tệp lên. <

Những bài viết liên quan

Tải lên nhiều hình ảnh và tệp trong Laravel có xác thực

Tải lên hình ảnh và tệp trong CodeIgniter

Quy trình tải tệp lên trong PHP

Quy trình của một tập lệnh tải lên tệp PHP hoàn chỉnh như sau

  • Tạo biểu mẫu Tải lên HTML do Bootstrap hỗ trợ làm “giao diện người dùng” của tập lệnh
  • Sử dụng jQuery & AJAX cho biểu mẫu tải tệp lên
  • Áp dụng kiểm tra bảo mật
  • Tạo các tập lệnh PHP để xử lý/xử lý dữ liệu

Tạo biểu mẫu HTML

Biểu mẫu HTML là giao diện thông qua đó người dùng tương tác và gửi dữ liệu của họ. Nhưng để làm cho nó hoạt động với tệp,

phần tử phải có phương thức được đặt thành POST vì bạn không thể gửi tệp đến máy chủ bằng phương thức GET

Một thuộc tính quan trọng khác là enctype nên được đặt thành multipart/form-data. Cuối cùng, đặt thuộc tính loại tệp thành tệp

Tạo chỉ mục tệp. php trong dự án PHP của bạn và nhập đoạn mã sau




Ajax File Upload with jQuery and PHP







PHP jQuery
Ajax File Uploading with Database MySql

NAME

EMAIL

PHP jQuery



www.Cloudways.com

PHP jQuery

Trong biểu mẫu này, tôi đã sử dụng các Lớp Bootstrap để áp dụng một chút kiểu dáng cho biểu mẫu. Trong biểu mẫu này, tôi đã đề cập đến ajaxupload. php trong thuộc tính hành động của biểu mẫu

Ngừng lãng phí thời gian trên máy chủ

Cloudways xử lý việc quản lý máy chủ cho bạn để bạn có thể tập trung vào việc tạo các ứng dụng tuyệt vời và giữ cho khách hàng của mình hài lòng

Sử dụng jQuery & AJAX cho biểu mẫu tải tệp lên

Vì tôi sẽ sử dụng jQuery & AJAX để gửi dữ liệu và tải tệp lên, tôi sẽ bắt đầu bằng cách đưa thư viện jQuery vào trước

$(document).ready(function (e) {
 $("#form").on('submit',(function(e) {
  e.preventDefault();
  $.ajax({
         url: "ajaxupload.php",
   type: "POST",
   data:  new FormData(this),
   contentType: false,
         cache: false,
   processData:false,
   beforeSend : function()
   {
    //$("#preview").fadeOut();
    $("#err").fadeOut();
   },
   success: function(data)
      {
    if(data=='invalid')
    {
     // invalid file format.
     $("#err").html("Invalid File !").fadeIn();
    }
    else
    {
     // view uploaded file.
     $("#preview").html(data).fadeIn();
     $("#form")[0].reset(); 
    }
      },
     error: function(e) 
      {
    $("#err").html(e).fadeIn();
      }          
    });
 }));
});

Trong đoạn mã trên sử dụng phương thức $ajax() để gửi dữ liệu tới php cũng kiểm tra dữ liệu thành công hay lỗi trong việc gửi dữ liệu

Cấu hình và kết nối cơ sở dữ liệu MySQL với PHP

Bước tiếp theo là thiết lập và cấu hình cơ sở dữ liệu MySQL

Truy cập Trình quản lý cơ sở dữ liệu Cloudways và tạo một bảng có tên là “đang tải lên. ”

Các trường của bảng này là tên, email và tên_tệp. Ngoài ra, bạn có thể sử dụng truy vấn SQL sau

CREATE TABLE `uploading` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,

`email` varchar(100) COLLATE utf8_unicode_ci NOT NULL,

`file_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Tiếp theo, tạo db. php để kết nối cơ sở dữ liệu với ứng dụng PHP. Dán đoạn mã sau vào tệp

connect_error){

   die("Unable to connect database: " . $db->connect_error);

}

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

Tệp được tải lên thư mục tạm thời khi người dùng tương tác với biểu mẫu này. Tất cả thông tin về tệp được lưu trữ trong mảng đa chiều được gọi là $_FILES

Chỉ mục khóa của mảng này là thuộc tính tên trên trường

Trong trường hợp này, $_FILES[“image”] là tên chỉ mục. Thông tin thêm về tệp được lưu trữ trong các chỉ mục sau

Khi tệp đã được tải lên thư mục tạm thời và tất cả thông tin của tệp được lưu trong mảng, hàm move_uploaded_file() được sử dụng để di chuyển tệp từ vị trí tạm thời hiện tại sang vị trí cố định. Quy trình upload file như sau

  1. Kiểm tra xem có bất kỳ lỗi nào trong quá trình tải lên không
  2. Kiểm tra xem loại tệp có được phép không
  3. Kiểm tra xem tệp có nằm dưới giới hạn kích thước tệp đã đặt không
  4. Kiểm tra xem tên tệp có hợp lệ không (nếu tên tệp có dấu / sẽ ảnh hưởng đến đường dẫn đích)
  5. Kiểm tra xem tệp chưa tồn tại ở vị trí đích (dựa trên tên)
  6. Cuối cùng, tải lên tập tin

Hãy tạo tập lệnh PHP để xử lý chức năng tải tệp lên. Tạo ajaxupload. php và gõ đoạn mã sau vào đó

";
$name = $_POST['name'];
$email = $_POST['email'];

//include database configuration file
include_once 'db.php';

//insert form data in the database
$insert = $db->query("INSERT uploading (name,email,file_name) VALUES ('".$name."','".$email."','".$path."')");

//echo $insert?'ok':'err';
}
} 
else 
{
echo 'invalid';
}
}
?>

Bây giờ tất cả các kiểm tra đã hoàn tất, tôi sẽ chuyển tệp đã tải lên từ thư mục tmp sang thư mục tải lên. Đối với điều này, trước tiên, hãy tạo một thư mục tải lên trong thư mục dự án. Đây là nơi lưu các ảnh đã tải lên, trong đó pathinfo() là hàm tích hợp trả về tên tệp và phần mở rộng trong các chỉ mục riêng biệt

Kiểm tra xem có bất kỳ lỗi nào trong quá trình tải lên không

Nhập mã sau để kiểm tra bất kỳ lỗi nào trong tệp đã tải lên. Nếu lỗi lớn hơn 0, chắc chắn đã xảy ra lỗi trong quy trình

if($errorimg > 0){

   die('

An error occurred while uploading the file

'); }

Kiểm tra xem tệp có nằm dưới giới hạn kích thước tệp đã đặt không

Kích thước tệp được đo bằng byte. Vì vậy, nếu kích thước tệp được đặt ở mức 500kb, thì kích thước tệp phải nhỏ hơn 500000

________số 8

Trong PHP Script để tải tệp lên, move_uploaded_file là hàm di chuyển tệp từ $myFile[“tmp_name”] (vị trí tạm thời) sang “upload/. ”

$name (vị trí cố định) cũng kiểm tra bản ghi bảng cơ sở dữ liệu sẽ được chèn vào

PHP jQuery

Làm cách nào để sử dụng reCAPTCHA trong Biểu mẫu liên hệ PHP?

Recaptcha là một dịch vụ miễn phí giúp bảo vệ các biểu mẫu khỏi gửi spam và lạm dụng. Đó là một lớp bổ sung hoạt động đằng sau hậu trường để ngăn chặn gửi thư rác bằng cách phân biệt xem người dùng cuối là người hay bot và đưa ra thử thách cho họ để giải quyết

Để đặt reCAPTCHA trên trang web PHP của bạn, bạn phải sử dụng một thư viện đơn giản bao quanh API reCHAPTCHA. Bạn có thể tải xuống “ReCAPTCHA PHP Library” và sau đó sử dụng tệp “recaptchalib. php. ”

Thêm đoạn mã sau vào

gắn thẻ nơi bạn muốn reCAPTCHA của mình được đặt.
require_once('recaptchalib.php');
$publickey = "your_public_key"; //you got this from the signup page
echo recaptcha_get_html($publickey);

Để kiểm tra xem người dùng đã gửi câu trả lời đúng hay chưa, một “xác minh. php” cần được tạo và phải được đặt làm thông số ‘hành động’ trong thẻ. Đây là mã dưới đây

0

Giải quyết các lỗi thường gặp

Rất nhiều lỗi có thể xảy ra trong quá trình tải lên tệp có thể dẫn đến lỗi. Bạn cần kiểm tra chính xác lỗi đã xảy ra trong quá trình tải lên bằng cách sử dụng $_FILES[‘uploadedFile’][‘error’]

Dưới đây là các lỗi bạn có thể gặp phải khi tải tệp lên

Kích thước tệp quá lớn

Lỗi UPLOAD_ERR_FORM_SIZE và UPLOAD_ERR_INI_SIZE xảy ra khi kích thước tệp lớn hơn giá trị được chỉ định trong php. ini hoặc biểu mẫu HTML riêng biệt. Bạn có thể loại bỏ lỗi này bằng cách tăng giới hạn kích thước tải lên hoặc cảnh báo người dùng về kích thước tệp tối đa mà họ có thể tải lên

Thư mục tạm thời bị thiếu

Lỗi UPLOAD_ERR_NO_TMP_DIR xuất hiện khi tệp cần chuyển bị mất. Và UPLOAD_ERR_NO_FILE được báo cáo khi không có tệp để chuyển

Tải lên một phần hoặc không thể ghi vào đĩa

Bạn sẽ gặp lỗi UPLOAD_ERR_PARTIAL khi tệp chỉ có thể được tải lên một phần và lỗi UPLOAD_ERR_CANT_WRITE trong trường hợp tệp dường như không được ghi vào đĩa

Tiện ích mở rộng PHP đã dừng tải tệp lên

Đôi khi, bạn có thể gặp lỗi UPLOAD_ERR_EXTENSION do một số tiện ích mở rộng đã dừng tải tệp lên. Điều này sẽ yêu cầu nhà phát triển kiểm tra thêm để xác định tiện ích mở rộng nào gây ra sự cố

kết thúc

Nhà phát triển cần định cấu hình cài đặt cụ thể để cho phép tải tệp lên bằng PHP. Các cài đặt này là cần thiết để quá trình chuyển thành công. Để sắp xếp các cài đặt này, chúng ta phải tìm tệp php. tập tin ini

Tôi đã trình diễn tải lên hình ảnh và tệp bằng PHP trong hướng dẫn này bằng AJAX và jQuery. Đây là bản demo chức năng của ứng dụng nơi bạn có thể thấy ứng dụng đang hoạt động. Trong hướng dẫn tiếp theo của tôi, tôi sẽ trình bày cách bạn có thể tải lên và lưu trữ tệp vào cơ sở dữ liệu bằng PDO

Q. Các tệp đã tải lên PHP đi đâu?

PHP lưu trữ tất cả các tệp tạm thời, bao gồm các tệp đã tải lên, trong thư mục tệp tạm thời như được chỉ định trong php. ban đầu. Lưu ý rằng đối với các tệp tải lên, các tệp này có thể bị xóa ngay khi tập lệnh mà 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 đó, nếu không bạn có thể sẽ không thấy tệp đã tải lên)

Q. Thư viện PHP nào tốt nhất để tải lên tệp?

A. Mặc dù có sẵn một số thư viện PHP tải lên tệp, nhưng thư viện Tải lên tệp HTML5 được coi là một trong những thư viện tốt nhất. Nó khá dễ sử dụng và là thư viện phổ biến nhất trong số các nhà phát triển, vì nó đơn giản hóa việc tải lên và xác thực tệp trong một vài bước nhanh chóng

Q. Tôi có thể tải tập lệnh tải lên tệp PHP ở đâu?

A. Bạn có thể dễ dàng tải xuống tập lệnh tải lên tệp từ phpfileuploader. com; . Sử dụng tập lệnh, bạn có thể dễ dàng tải lên nhiều tệp bổ sung mới trong quá trình tải lên

Q. Làm cách nào để di chuyển các tệp đã tải lên trong PHP?

A. Bạn có thể sử dụng hàm move_uploaded_file() để di chuyển tệp đã tải lên sang đường dẫn/thư mục mới. Nó cho phép chúng tôi dễ dàng di chuyển các tệp đến một vị trí mới, ngay cả khi chúng mới được tải lên. Khi chuyển thành công, nó trả về TRUE và nếu bắt gặp bất kỳ ngoại lệ nào, trả về FALSE

Đánh giá của khách hàng tại

PHP jQuery

“Dịch vụ lưu trữ trên nền tảng đám mây có một trong những dịch vụ khách hàng tốt nhất và tốc độ lưu trữ”

Sanjit C [Nhà phát triển trang web]

PHP jQuery

Inshal Ali

Inshal là Nhà tiếp thị nội dung tại Cloudways. Với nền tảng về khoa học máy tính, kỹ năng nội dung và rất nhiều sáng tạo, anh ấy đã giúp doanh nghiệp vươn tới bầu trời và vượt xa thông qua nội dung nói ngôn ngữ của khách hàng của họ. Ngoài công việc, bạn sẽ thấy anh ấy chủ yếu trong một số trò chơi trực tuyến hoặc trên sân bóng

Bạn có thể sử dụng jQuery trong PHP không?

Tất cả những gì bạn cần làm để sử dụng jQuery với PHP là đưa tệp javascript jQuery vào tài liệu HTML của bạn trong thẻ đầu .

Tại sao jQuery được sử dụng trong PHP?

Mục đích của jQuery là giúp sử dụng JavaScript trên trang web của bạn dễ dàng hơn nhiều . jQuery đảm nhận nhiều tác vụ thông thường yêu cầu nhiều dòng mã JavaScript để thực hiện và gói gọn chúng thành các phương thức mà bạn có thể gọi bằng một dòng mã.

Sự khác biệt giữa PHP và jQuery là gì?

Tôi xin nói trước rằng PHP là PHÍA MÁY CHỦ và jQuery là PHÍA KHÁCH HÀNG . Thời gian thực thi của PHP phụ thuộc vào kiến ​​trúc và cấu hình máy chủ của bạn; . jQuery cũng không hoạt động trong các trình duyệt cũ HOẶC các trình duyệt đã tắt javascript.

jQuery có còn phù hợp vào năm 2022 không?

Nhưng các dự án hiện tại của các nhà phát triển web không nói lên toàn bộ câu chuyện. Dựa trên xu hướng công nghệ Internet của BuildWith, jQuery đã được tìm thấy trên hơn 80 triệu trang web vào năm 2022 . Đó là một sự dẫn đầu rất lớn trong số gần 11 triệu trang web đang chạy React.