Người Viết : ViKiMi Editor

Hướng dẫn tạo chức năng Download Files sử dụng jQuery Ajax, giúp chia sẻ tài nguyên người dùng
Một phần được đề cập điển hình khi xử lý với Ajax đó chính là download File. Xử lý này cho phép tạo ra chức năng Download File trên Website của bạn. Và cho phép tạo ra một cung cấp các File mà bạn muốn cho người dùng Download hoặc chia sẻ. Nhờ vậy nguồn tài nguyên mà bạn muốn cung cấp đến mọi người được hiệu quả hơn. Đó cũng là một dịch vụ mà bạn có thể mang lại cho bất kỳ khách hàng nào.
Vậy chức năng này có gì mới mẻ hay không?
Tất nhiên, đây cũng là một chức năng giống như các Website cung cấp dịch vụ download các tài liệu, video, hình ảnh … Nhưng khi thực hiện với jQuery AJAX thì nó sẽ phát huy được sức mạnh mà Ajax mang lại. Cho phép thực hiện các xử lý mà không cần Load lại toàn bộ Trang Web.
Chính điều này làm cho chức năng này mạnh hơn và tốc độ của Website luôn luôn đảm bảo tốt nhất. Đó là điều mà bất kỳ Người Phát Triển nào cũng mong muốn.
Chúng ta có những bước xử lý để phát triển chức năng này.
BƯỚC 1 : Tại file Content.php của WordPress, thực hiện tạo một Link cho phép khách truy cập Download file. Khi Khách truy cập Click vào Link download thì sẽ thực hiện xử lý Ajax cho phép Tải File miễn phí.
Chúng ta có phần xử lý như sau :
<?php $nonce = wp_create_nonce('nonce-value'); ?> <a href='<?php echo admin_url("admin-ajax.php?action=free_download_file&nonce=$nonce"); ?>' class="user_download button button-primary" data-nonce='<?php echo $nonce;?>'> Download File </a>
BƯỚC 2 : Đăng kí File jQuery chứa xử lý jQuery AJAX
Chúng ta sẽ đăng kí tại file function.php của chủ đề / theme mà bạn đang kích hoạt. Việc này sẽ cho phép bạn tích hợp xử lý Ajax và WordPress.
function freedownload_scripts() {
// Register the script
wp_register_script( 'freedownload-script', get_stylesheet_directory_uri(). '/js/free_download.js', array('jquery'), false, true );
// Localize the script with new data
$script_data_array = array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
);
wp_localize_script( 'freedownload-script', 'blog', $script_data_array );
// Enqueued script with localized data.
wp_enqueue_script( 'freedownload-script' );
}
add_action( 'wp_enqueue_scripts', 'freedownload_scripts' );
Thực hiện đăng kí File free_download.js với WordPress!
Ở đây, chúng ta đã thực hiện truyền 1 biến chứa thông tin là :
Ajaxurl : Chúng ta sẽ thực hiện gọi đường dẫn url trong WordPress, cụ thể là gọi tới file admin – ajax .php, để thực hiện các yêu cầu xử lý
BƯỚC 3 : Thực hiện xử lý jQuery AJAX tại file free_download.js
Đây là File cho phép thực hiện xử lý của chức năng Download File bằng ajax. Và tại sao nó quan trọng? Bởi vì nó cho phép người dùng Tải File mà không cần Load lại toàn bộ nội dung trang hiện tại.
jQuery(document).ready( function() {
jQuery(“.user_download”).click( function(e) {
e.preventDefault();
nonce = jQuery(this).attr(“data-nonce”);
var data = {
action: ‘download_attachment’,
filename: ‘file_path’,
//Hãy thu thập giá trị đường dẫn File phù hợp
nonce: nonce,
};
jQuery.ajax({
url: blog.ajaxurl,
type: “POST”,
data: data,
success: function(result, textStatus, jqXHR) {
parsedData = $.parseJSON(result);
window.open(parsedData);
}
});
});
});
BƯỚC 4 : Thực hiện xử lý action download_attachment và đăng kí
Khi jQuery Ajax thực hiện Call Action thì phần xử lý Action này sẽ được thực hiện. Và nội dung Code này sẽ đặt tại function.php
add_action(“wp_ajax_download_attachment”, “download_attachment_callback “);
add_action(“wp_ajax_nopriv_download_attachment”, “download_attachment_callback“);
function download_attachment_callback() {
check_ajax_referer(‘nonce-value’, ‘nonce’);
$filename = $_REQUEST[‘filename’];
if (!file_exists($filename)) {
wp_die();
}
$basename = basename($filename);
$filesize = filesize($filename);
header(‘Content-Description: File Transfer’);
header(‘Content-Type: text/plain’);
header(“Cache-Control: no-cache, must-revalidate”);
header(“Expires: 0”);
header(“Content-Disposition: attachment; filename=$basename”);
header(“Content-Length: $filesize”);
header(‘Pragma: public’);
flush();
readfile($filename);
echo json_encode($filename);
wp_die();
}
Như vậy, đã cho phép thực hiện tạo một chức năng Download Files. Với một Website việc chia sẻ những tài nguyên đó là một điều tuyệt vời. Cho phép phát triển tốt hơn nữa một lĩnh vực thiết kế. Do đó, trên đây là một ví dụ đơn giản cho việc tạo một Download Files với Ajax, thật dễ dàng phát triên và triển khai.