Hướng dẫn how to pass form data in curl php? - làm cách nào để chuyển dữ liệu biểu mẫu trong curl php?

Tôi có lệnh sau, sử dụng tùy chọn-Form/-f, mà tôi biết là đang hoạt động:

curl  --form "file=@/home/USERNAME/import.csv" //apiprovider.com/api/v0/imports\?token\=[KEY]

Tôi cần chạy lệnh này thông qua PHP, nhưng tôi gặp rắc rối, có lẽ là với dữ liệu tệp biểu mẫu. Tôi đã thử những điều sau đây, tuy nhiên lặp lại hoặc var_dumping kết quả dường như không hiển thị, chỉ là một trang trống hoặc một chuỗi trống.


Làm thế nào tôi có thể nhận được lệnh này hoạt động trong PHP?

Hỏi ngày 17 tháng 10 năm 2017 lúc 15:21Oct 17, 2017 at 15:21

KinsdotnetkinsdotnetKinsDotNet

1.5185 huy hiệu vàng24 Huy hiệu bạc49 Huy hiệu đồng5 gold badges24 silver badges49 bronze badges

3

Vì không có câu trả lời nào cho đến nay [ít nhất là không phải với một cách tiếp cận sẽ hoạt động trong PHP 5.6+], đây là: mã PHP curl_ tương đương sẽ là:

$ch = curl_init [ '//apiprovider.com/api/v0/imports?token=[KEY]' ];
curl_setopt_array [ $ch, array [
        CURLOPT_POST => 1,
        CURLOPT_POSTFIELDS => array [
                'file' => new CURLFile [ '/home/USERNAME/import.csv' ] 
        ] 
] ];
curl_exec [ $ch ];

.

Đã trả lời ngày 22 tháng 10 năm 2017 lúc 10:04Oct 22, 2017 at 10:04

Hanshenrikhanshenrikhanshenrik

18.3k3 Huy hiệu vàng39 Huy hiệu bạc79 Huy hiệu đồng3 gold badges39 silver badges79 bronze badges

thử cái này:


Đã trả lời ngày 20 tháng 10 năm 2017 lúc 9:22Oct 20, 2017 at 9:22

Jelle Woordjelle Woordjelle woord

1832 Huy hiệu bạc16 Huy hiệu đồng2 silver badges16 bronze badges

0

Một cách là sử dụng CURLFile thay vì @ cho phiên bản PHP trên 5.5

$target_url = '//apiprovider.com/api/v0/imports?token=[KEY]'
$file_name_with_full_path ='/home/USERNAME/import.csv';
// Create a CURLFile object
$cfile = new CURLFile[$file_name_with_full_path,mime_content_type[$file_name_with_full_path],'imported_csv'];    
// Assign POST data
$post = array['imported_csv_file' => $cfile];    
$ch = curl_init[];
curl_setopt[$ch, CURLOPT_URL,$target_url];
curl_setopt[$ch, CURLOPT_POST,1];
curl_setopt[$ch, CURLOPT_POSTFIELDS, $post];
curl_setopt[$ch, CURLOPT_RETURNTRANSFER,1];
curl_setopt[$ch, CURLOPT_VERBOSE,true];
$result=curl_exec [$ch];
curl_close [$ch];
var_dump[$result];

Đã trả lời ngày 20 tháng 10 năm 2017 lúc 14:41Oct 20, 2017 at 14:41

2

Có lẽ một cái gì đó như thế này có thể hoạt động:

Bài Viết Liên Quan

Chủ Đề