HTTP CLIENT我通過in從第三方 API 獲得二進制回應Symfony
如何將該回應轉換為UplodedFile物件。
請提出一個很好的方法來做到這一點。
uj5u.com熱心網友回復:
您不能使用該類,因為它需要一個檔案路徑,并且如果您嘗試將其傳遞給未通過 $_FILES 陣列上傳UploadedFile的檔案的路徑,則會引發錯誤(on )。move
或者,您可以使用 Symfony 的File類(UploadedFileextends File),但這也需要檔案路徑。因此,您需要將回應轉換為(臨時)檔案,例如使用下面的類。
由于這個類 extends File,你可以使用 Symfony Validator 驗證它的實體并呼叫move它,就像你使用UploadedFile.
use Symfony\Component\HttpFoundation\File\File;
class TmpFile extends File {
private $handle;
public function __construct(string $contents)
{
$this->handle = tmpfile();
fwrite($this->handle, $contents);
parent::__construct(stream_get_meta_data($this->handle)['uri']);
}
}
并像這樣使用它:
$tmpFile = new TmpFile((string) $response->getContent());
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/490282.html
標籤:php api 交响乐 symfony5.4
