【问题标题】:I am using cakephp 4.0. I try to upload image in cloudinary (Laminas\Diactoros\UploadedFile) [closed]我正在使用 cakephp 4.0。我尝试在 cloudinary 中上传图像(Laminas\Diactoros\UploadedFile)[关闭]
【发布时间】:2020-05-03 00:56:06
【问题描述】:

我的帖子数据图像返回此格式。为什么返回这种类型。我想要 imagea 数组并在 cloudinary 中上传一个图像,你如何使用它。有没有人可以帮忙..

Laminas\Diactoros\UploadedFile Object (
[clientFilename:Laminas\Diactoros\UploadedFile:private] => IMG-20180705-WA0007.jpg
[clientMediaType:Laminas\Diactoros\UploadedFile:private] => image/jpeg
[error:Laminas\Diactoros\UploadedFile:private] => 0
[file:Laminas\Diactoros\UploadedFile:private] => D:\xampp\tmp\phpB830.tmp
[moved:Laminas\Diactoros\UploadedFile:private] => 
[size:Laminas\Diactoros\UploadedFile:private] => 164593
[stream:Laminas\Diactoros\UploadedFile:private] => )

【问题讨论】:

    标签: php object cakephp cloudinary image-upload


    【解决方案1】:

    至于“为什么”,文件上传对象更通用,更容易测试,并提供干净、标准化的界面。

    虽然您可以通过将 App.uploadedFilesAsObjects 配置选项设置为 false 来切换回使用数组,但 Cloudinary 似乎不需要使用文件上传数组,他们用于上传文件的 PHP SDK 方法接受简单的本地文件路径,即你应该可以做到:

    $tmpPath = $uploadedFile->getStream()->getMetadata('uri');
    $result = \Cloudinary\Uploader::upload($tmpPath, [/* ... */]);
    

    $tmpPath 将与上传数组的 tmp 键为您提供的路径相同。

    对于原始 API 调用,您可能会使用二进制文件数据在 POST 请求中发送它,您也可以通过流轻松访问:

    $filePostData = $uploadedFile->getStream()->getContents();
    

    这与读取上传数组的tmp键指向的文件基本相同。

    另见

    【讨论】:

      猜你喜欢
      • 2020-02-16
      • 2021-12-27
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-25
      • 2021-09-02
      • 1970-01-01
      相关资源
      最近更新 更多