我需要使用PHP上传文件,并且正在使用transfer.sh来完成此操作。
curl-上传文件文件https://transfer.sh/
而且,我不确定如何使用GuzzleHttp上传文件。我已经尝试使用,
$body = fopen('/path/to/file', 'r');
$r = $client->request('POST', 'http://httpbin.org/post', ['body' => $body]);
我当前的方法有这两行。
$body = fopen($path, 'r');
$link = $this->client->request('GET', 'https://transfer.sh/', [
'body' => $body
])->getBody();
答案 0 :(得分:0)
您需要指定HTTP POST 方法并形成多部分数据
require_once 'vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\RequestOptions;
$httpClient = new Client();
$response = $httpClient->post(
'https://transfer.sh',
[
RequestOptions::MULTIPART => [
[
'name' => 'file',
'contents' => new SplFileObject(__DIR__ . '/resource/file.txt', 'r'),
'filename' => 'file.txt',
]
],
]
);
var_dump($response->getBody()->getContents());
// Output: https://transfer.sh/sXusw/file.txt