Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Upload file sử dụng CURL và PHP - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Có nhiều cách để tải lên tệp lên máy chủ bằng PHP, bao gồm việc sử dụng biểu mẫu, Ajax, FTP, SCP và nhiều phương pháp khác. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng cURL để tải lên tệp đến máy chủ sử dụng PHP.

Để thực hiện hướng dẫn này, bạn sẽ cần 3 tệp sau:

  1. curl.php: Đây là tệp script cURL để đọc và xử lý việc tải lên tệp đến máy chủ (phía máy khách).
  2. upload.php: Đây là tệp xử lý nhận tệp từ máy khách (phía máy chủ).
  3. data.txt: Đây là tệp dữ liệu chúng ta sẽ tải lên.

Xử lý upload file tới server

File: curl.php

<?php
// CURL init
$curl = curl_init();

$fields = [
    'file' => curl_file_create('data.txt'),
    'description' => 'Upload file to server by url (vinasupport.com)'
];

// Set CURL options
curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://localhost/upload.php',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_VERBOSE => 1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => $fields,
    CURLOPT_SSL_VERIFYHOST => false,
    CURLOPT_SSL_VERIFYPEER => false
));

//create the multiple cURL handle
$mh = curl_multi_init();

//add the handle
curl_multi_add_handle($mh, $curl);

//execute the handle
do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
} while ($active && $status == CURLM_OK);

//close the handles
curl_multi_remove_handle($mh, $curl);
curl_multi_close($mh);

// all of our requests are done, we can now access the results
echo curl_multi_getcontent($curl);

Khi bạn thực hiện việc này trên máy chủ cục bộ (local), bạn nên tắt xác thực chứng chỉ SSL bằng cách đặt hai tùy chọn là CURLOPT_SSL_VERIFYHOST và CURLOPT_SSL_VERIFYPEER thành false. Điều này giúp tránh việc kiểm tra xác thực certificate SSL.

Xử lý file nhận từ client

File: upload.php

Ở đây mình chỉ hiển thị dữ liệu gửi lên từ client, còn các bạn có thể tùy ý xử lý dữ liệu.

<?php
// Show request data
var_dump($_FILES);
var_dump($_POST);

Kết quả:

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *