如何将一个URL地址的网络资源文件上传到服务器?首先考虑的方法是将文件下载到本地,然后进行上传操作,那有没有一个更方便的方法,将一个网络文件直接上传到服务器呢?是不是可以通过文件流的方式上传呢?
我这里使用的是 Guzzle
三方库,将一张百度上的图片上传到其他服务器
use GuzzleHttpClient;
try {
$file = fopen('https://t8.baidu.com/it/u=1484500186,1503043093&fm=79&app=86&size=h300&n=0&g=4n&f=jpeg', 'r');
$multipart = [
[
'name' => 'file',
'contents' => $file
]
];
$client = new Client(['verify' => false]);
$response = $client->request('POST', 'https://xx.com/upload', [
'multipart' => $multipart
]);
if ($response->getStatusCode() === 200) {
$content = $response->getBody()->getContents();
$result = json_decode($content, true);
}
} catch (Exception $exception) {
echo $exception->getMessage();
}
return $result;