Hướng dẫn php receive file from curl - php nhận tập tin từ curl


Đọc sau

Thông tin

Tags

Đăng lại


Sự định nghĩa

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách chuyển các tệp sang trang web tương ứng thông qua Curl trong PHP dễ dàng mà không phải vật lộn với việc tạo biểu mẫu HTML trong mọi nỗ lực thu thập thông tin người dùng.

PHP hỗ trợ LibCurl, một thư viện được tạo bởi Daniel Stenberg, cho phép bạn kết nối và giao tiếp với nhiều loại máy chủ khác nhau với nhiều loại giao thức khác nhau. LibCurl hiện hỗ trợ HTTP, HTTPS, FTP, Gopher, Telnet, Dict, File và LDAP. LibCurl cũng hỗ trợ chứng chỉ HTTPS, bài đăng HTTP, HTTP, tải lên FTP [điều này cũng có thể được thực hiện với tiện ích mở rộng FTP của PHP], tải lên trên biểu mẫu HTTP, proxy, cookie và xác thực người dùng+mật khẩu. [1]

Mã số

Lưu các tệp Send.php và nhận.php trong cùng một thư mục.

Sending:

Xác định trang web bạn muốn gửi tệp qua Curl - recept.php.

Nhận đường dẫn tệp đầy đủ của tệp được yêu cầu.

Tạo đối số cho yêu cầu bài viết.

Để gửi các thuộc tính tệp trong giao thức giao tiếp an toàn, hãy sử dụng chức năng Curl_File_Create - cho PHP 5.5+ - thay vì phương thức không dùng nữa.

Yêu cầu Curl ban đầu.

Đặt curlopt_url, curlopt_post và curlopt_postfields tham số.

Nhận kết quả của yêu cầu.

Dừng yêu cầu.

In kết quả với phản hồi được chuyển bởi recept.php.

Receiving:

Nếu yêu cầu Curl thành công, hãy lưu tệp với tên của người gửi.

In tin nhắn trạng thái.

Hiển thị tệp hiện đã lưu nếu đó là hình ảnh.

________0

Result:

Hình - 109.1


Người giới thiệu

[1] //www.php.net/manual/en/intro.curl.php //www.php.net/manual/en/intro.curl.php

Vì vậy, sau khi nghiên cứu một chút, tôi phát hiện ra rằng có thể gửi một tệp qua Curl đến một trang khác. Đây là mã đang thực hiện phần gửi:

$url = '//someabc.com/api.php';
$ch = curl_init[];
curl_setopt[$ch, CURLOPT_HEADER, 0];
curl_setopt[$ch, CURLOPT_VERBOSE, 0];
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
curl_setopt[$ch, CURLOPT_URL, $url];
curl_setopt[$ch, CURLOPT_POST, true];
$postData = array[
    'array' => "@".realpath['array.txt'],
];
curl_setopt[$ch, CURLOPT_POSTFIELDS, $postData];
$response = curl_exec[$ch];

echo $response;

Nhận phần [API.php]

if[isset[$_POST['array']]]
{
    $string = $_POST['array'];
    echo $string;
}
else
{
    echo 'Not found';
}

Khi tôi chạy trang chứa yêu cầu Curl, tôi sẽ được in trên trang.

Điều này có nghĩa là tôi đang thu thập dữ liệu một cách sai lầm? Nếu vậy, điều gì sẽ là cách để có được nội dung của array.txt từ trang

$url = '//someabc.com/api.php';
$ch = curl_init[];
curl_setopt[$ch, CURLOPT_HEADER, 0];
curl_setopt[$ch, CURLOPT_VERBOSE, 0];
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
curl_setopt[$ch, CURLOPT_URL, $url];
curl_setopt[$ch, CURLOPT_POST, true];
$postData = array[
    'array' => "@".realpath['array.txt'],
];
curl_setopt[$ch, CURLOPT_POSTFIELDS, $postData];
$response = curl_exec[$ch];

echo $response;
0?

CẬP NHẬT

Sau khi sử dụng

$url = '//someabc.com/api.php';
$ch = curl_init[];
curl_setopt[$ch, CURLOPT_HEADER, 0];
curl_setopt[$ch, CURLOPT_VERBOSE, 0];
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
curl_setopt[$ch, CURLOPT_URL, $url];
curl_setopt[$ch, CURLOPT_POST, true];
$postData = array[
    'array' => "@".realpath['array.txt'],
];
curl_setopt[$ch, CURLOPT_POSTFIELDS, $postData];
$response = curl_exec[$ch];

echo $response;
1 Theo đề xuất của Jon, tôi đã nhận được mảng sau:

Array
[
    [name] => array.txt
    [type] => application/octet-stream
    [tmp_name] => /tmp/phpPQZXf9
    [error] => 0
    [size] => 77413
]

Bây giờ tôi đã thử nhận nội dung của tệp này bằng cách sử dụng:

$tmp = $_FILES['array'];
$string = file_get_contents[$tmp['name']['tmp_name']];

Nhưng có lỗi

$url = '//someabc.com/api.php';
$ch = curl_init[];
curl_setopt[$ch, CURLOPT_HEADER, 0];
curl_setopt[$ch, CURLOPT_VERBOSE, 0];
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
curl_setopt[$ch, CURLOPT_URL, $url];
curl_setopt[$ch, CURLOPT_POST, true];
$postData = array[
    'array' => "@".realpath['array.txt'],
];
curl_setopt[$ch, CURLOPT_POSTFIELDS, $postData];
$response = curl_exec[$ch];

echo $response;
2, điều đó có nghĩa là tôi không tham khảo chính xác tệp. Tôi đã đi sai ở đâu bây giờ?

Chào mừng bạn đến với một hướng dẫn nhanh về cách tải lên một tệp với PHP Curl. Cần thực hiện chuyển tệp máy chủ sang máy chủ với PHP? Vâng, nó chắc chắn là có thể.

Để thực hiện tải lên tệp với PHP Curl, chỉ cần đặt Curl để thực hiện một bài đăng và đính kèm tệp.

  • $url = '//someabc.com/api.php';
    $ch = curl_init[];
    curl_setopt[$ch, CURLOPT_HEADER, 0];
    curl_setopt[$ch, CURLOPT_VERBOSE, 0];
    curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
    curl_setopt[$ch, CURLOPT_URL, $url];
    curl_setopt[$ch, CURLOPT_POST, true];
    $postData = array[
        'array' => "@".realpath['array.txt'],
    ];
    curl_setopt[$ch, CURLOPT_POSTFIELDS, $postData];
    $response = curl_exec[$ch];
    
    echo $response;
    
    3
  • $url = '//someabc.com/api.php';
    $ch = curl_init[];
    curl_setopt[$ch, CURLOPT_HEADER, 0];
    curl_setopt[$ch, CURLOPT_VERBOSE, 0];
    curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
    curl_setopt[$ch, CURLOPT_URL, $url];
    curl_setopt[$ch, CURLOPT_POST, true];
    $postData = array[
        'array' => "@".realpath['array.txt'],
    ];
    curl_setopt[$ch, CURLOPT_POSTFIELDS, $postData];
    $response = curl_exec[$ch];
    
    echo $response;
    
    4
  • $url = '//someabc.com/api.php';
    $ch = curl_init[];
    curl_setopt[$ch, CURLOPT_HEADER, 0];
    curl_setopt[$ch, CURLOPT_VERBOSE, 0];
    curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
    curl_setopt[$ch, CURLOPT_URL, $url];
    curl_setopt[$ch, CURLOPT_POST, true];
    $postData = array[
        'array' => "@".realpath['array.txt'],
    ];
    curl_setopt[$ch, CURLOPT_POSTFIELDS, $postData];
    $response = curl_exec[$ch];
    
    echo $response;
    
    5
  • $url = '//someabc.com/api.php';
    $ch = curl_init[];
    curl_setopt[$ch, CURLOPT_HEADER, 0];
    curl_setopt[$ch, CURLOPT_VERBOSE, 0];
    curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
    curl_setopt[$ch, CURLOPT_URL, $url];
    curl_setopt[$ch, CURLOPT_POST, true];
    $postData = array[
        'array' => "@".realpath['array.txt'],
    ];
    curl_setopt[$ch, CURLOPT_POSTFIELDS, $postData];
    $response = curl_exec[$ch];
    
    echo $response;
    
    6
  • $url = '//someabc.com/api.php';
    $ch = curl_init[];
    curl_setopt[$ch, CURLOPT_HEADER, 0];
    curl_setopt[$ch, CURLOPT_VERBOSE, 0];
    curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
    curl_setopt[$ch, CURLOPT_URL, $url];
    curl_setopt[$ch, CURLOPT_POST, true];
    $postData = array[
        'array' => "@".realpath['array.txt'],
    ];
    curl_setopt[$ch, CURLOPT_POSTFIELDS, $postData];
    $response = curl_exec[$ch];
    
    echo $response;
    
    7
  • $url = '//someabc.com/api.php';
    $ch = curl_init[];
    curl_setopt[$ch, CURLOPT_HEADER, 0];
    curl_setopt[$ch, CURLOPT_VERBOSE, 0];
    curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
    curl_setopt[$ch, CURLOPT_URL, $url];
    curl_setopt[$ch, CURLOPT_POST, true];
    $postData = array[
        'array' => "@".realpath['array.txt'],
    ];
    curl_setopt[$ch, CURLOPT_POSTFIELDS, $postData];
    $response = curl_exec[$ch];
    
    echo $response;
    
    8
  • $url = '//someabc.com/api.php';
    $ch = curl_init[];
    curl_setopt[$ch, CURLOPT_HEADER, 0];
    curl_setopt[$ch, CURLOPT_VERBOSE, 0];
    curl_setopt[$ch, CURLOPT_RETURNTRANSFER, 1];
    curl_setopt[$ch, CURLOPT_URL, $url];
    curl_setopt[$ch, CURLOPT_POST, true];
    $postData = array[
        'array' => "@".realpath['array.txt'],
    ];
    curl_setopt[$ch, CURLOPT_POSTFIELDS, $postData];
    $response = curl_exec[$ch];
    
    echo $response;
    
    9
  • if[isset[$_POST['array']]]
    {
        $string = $_POST['array'];
        echo $string;
    }
    else
    {
        echo 'Not found';
    }
    
    0

Điều đó bao gồm những điều cơ bản, nhưng chúng ta hãy đi qua một ví dụ đơn giản trong hướng dẫn này - đọc tiếp!

Tôi đã bao gồm một tệp zip với tất cả mã nguồn khi bắt đầu hướng dẫn này, vì vậy bạn không phải sao chép mọi thứ, hoặc nếu bạn chỉ muốn đi thẳng vào.

TLDR - Slide nhanh

MỤC LỤC

Tải xuống & ghi chú

Thứ nhất, đây là liên kết tải xuống đến mã ví dụ như đã hứa.

Ghi chú nhanh

Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với toàn bộ thế giới, nếu bạn cần câu trả lời khẩn cấp, vui lòng kiểm tra danh sách các trang web của tôi để nhận trợ giúp lập trình.

Mã hóa ví dụ Tải xuống

Nhấn vào đây để tải xuống tất cả các mã nguồn ví dụ, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên đó hoặc sử dụng nó trong dự án của riêng bạn.

Được rồi, bây giờ chúng ta hãy vào ví dụ về cách tải lên một tệp bằng Curl PHP.

Máy chủ A] Tải lên tệp với Curl

1-upload.php

Bài Viết Liên Quan

Chủ Đề