Cloudinary上传php失败,如何解决?

Posted

技术标签:

【中文标题】Cloudinary上传php失败,如何解决?【英文标题】:Cloudinary upload php failed, how to fix it? 【发布时间】:2020-04-28 05:10:35 【问题描述】:

我尝试使用 cloudinary 为我的个人博客上传图片和视频,但失败了。我看这个视频教程https://www.youtube.com/watch?v=oZCQLjfq97o。错误说:

注意:未定义索引:第 8 行 >C:\xampp7\htdocs\lovantoBlog\cloudinary\index.php 中的文件

注意:未定义索引:第 9 行 >C:\xampp7\htdocs\lovantoBlog\cloudinary\index.php 中的文件

致命错误:未捕获的 Cloudinary\错误:缺少必需参数 - C:\xampp7\htdocs\lovantoBlog\cloudinary\vendor\cloudinary\cloudinary_php\src\Uploader.php 中的文件:558 堆栈跟踪:#0 C:\xampp7 \htdocs\lovantoBlog\cloudinary\vendor\cloudinary\cloudinary_php\src\Uploader.php(407): Cloudinary\Uploader::call_api('upload', Array, Array, NULL) #1 C:\xampp7\htdocs\lovantoBlog\ cloudinary\vendor\cloudinary\cloudinary_php\src\Uploader.php(100): Cloudinary\Uploader::call_cacheable_api('upload', Array, Array, NULL) #2 C:\xampp7\htdocs\lovantoBlog\cloudinary\index.php (11): Cloudinary\Uploader::upload(NULL, Array) #3 main 在 C:\xampp7\htdocs\lovantoBlog\cloudinary\vendor\cloudinary\cloudinary_php\src\Uploader.php 第 558 行抛出

这是我的上传代码:

require 'vendor/autoload.php';
require 'config.php';

if (isset($_POST['Simpan'])) 
    $nama = $_POST['nama'];
    $slug = $_POST['slug'];
    $gambar = $_FILES['file']['name'];
    $file_tmp = $_FILES['file']['tmp_name'];

    \Cloudinary\Uploader::upload($file_tmp, array('public_id' => $slug));

这是表单的代码:

<form method="POST">
    <input type="text" name="nama">
    <input type="text" name="slug">
    <?php echo cl_image_upload_tag('image_id');?>
    <input type="submit" name="Simpan" value="Simpan">
</form>

【问题讨论】:

【参考方案1】:

cl_image_upload_tag 用于执行从浏览器直接上传到 Cloudinary。当您提交表单时,没有文件参数发送到您的后端,因此Cloudinary::Uploader::upload 调用失败并出现错误Missing required parameter - file

如果您想从后端上传文件,则需要将cl_image_upload_tag 替换为常规文件输入字段元素。选择文件并提交表单后,您的后端可以使用相同的代码将文件上传到 Cloudinary。

另一方面,如果想使用cl_image_upload_tag,请参阅 Cloudinary 文档中描述设置的直接上传部分。 https://cloudinary.com/documentation/php_image_and_video_upload#direct_upload_file_tag

【讨论】:

以上是关于Cloudinary上传php失败,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

如何将图片上传到Cloudinary云平台?

Cloudinary::CarrierWave 如何在 Cloudinary 中选择上传文件夹

如何将图像从 android 上传到 Cloudinary?

如何将多张图片上传到 Cloudinary?

如何在 Android 中将文件上传到 Cloudinary 时显示进度?

如何将图像上传到 cloudinary