当前位置: 首页 > 知识库问答 >
问题:

无法格式化文件以上传到Cloudinary

凌黎明
2023-03-14

我正在尝试使用直接调用REST API的上载功能将图像从颤振应用程序发送到Cloudinary,但出现以下错误:

{"error":{"message":"Invalid file parameter. Make sure your file parameter does not include '[]'"}}

我试图将图像编码为字节数组,Base64Encode,但没有一个工作,我按照这个留档。

有人知道如何对文件进行编码以便我发送吗?

谢啦

编辑:

@override
  Future<void> getImageSignature(File image) async {
    return await _callWithExceptionWrap(() async {
      if (image != null) {
        DateTime dateTime = DateTime.now();
        String url = _formatUrlForUploadSignature();
        Dio dio = NetworkUtils.createDioConnection();
        debugPrint('REQUEST TO SERVER');
        Response serverResponse = await dio.post(url, data: {
          "paramsToSign": {
            'public_id': 'public_id_654',
            "timestamp": dateTime.millisecondsSinceEpoch,
            "upload_preset": "signed_preset",
            "source": "uw",
          }
        });
        debugPrint('REQUEST TO CLOUDINARY');
        String signature = serverResponse.data['signature'];
        List<int> bytes = image.readAsBytesSync();
        var base64Image = base64Encode(bytes);

        Map<String, dynamic> map = {
          'api_key': _CLOUDINARY_API_KEY,
          'public_id': 'public_id_654',
          'signature': signature,
          'source': 'uw',
          'timestamp': dateTime.millisecondsSinceEpoch,
          'upload_preset': 'signed_preset',
          'file': base64Image,
        };
        debugPrint('json : ${map}');
//      FormData formData = new FormData.fromMap(map);
        Response cloudinaryResponse = await dio.post(_CLOUDINARY_URL, data: map);
        debugPrint('*************************** Cloudinary response : ${cloudinaryResponse.data}');
      }
    });

签名是可以的,因为我没有得到401错误(签名我从服务器接收。

这是cloudinary的url:\u cloudinary\u url=https://api.cloudinary.com/v1_1//image/upload';

共有1个答案

龙逸清
2023-03-14

这不是在公共客户端(移动应用程序)上使用的正确api,您不应该公开您的api_密钥和api_机密。请查看此软件包,它使用正确的api上载文件https://pub.dev/packages/cloudinary_public

 类似资料:
  • 当我试图上传文件到泽西岛时,我发现下面有一些异常,请帮助我解决。谢谢 html文档:- 阿贾克斯:- Java代码:- 例外情况:- 2015年6月17日下午7:55:34组织。阿帕奇。卡塔琳娜。果心StandardWrapperValve调用 请求头:-

  • 我使用这个网络服务上传一个文件使用泽西 //省省吧 //将上传的文件保存到新位置 当我执行我的代码我得到一个405错误!对这个问题有什么建议吗?

  • 我试图在AWSS3中上传错误文件,但它显示错误,如“您试图访问的存储桶必须使用指定的endpoint寻址。请将所有未来的请求发送到此endpoint:”test9011960909。s3。亚马逊。com“ 我还指定了“区域”= 当我指定时,它正在工作 但我想把文件上传到主bucket的子文件夹中 我已经应用了AWS S3批准的答案:您试图访问的桶必须使用指定的终结点进行寻址 但仍然得到同样的错误,

  • 问题内容: 我正在创建一个HTML表,将在Excel中作为电子表格打开。我可以使用哪种HTML标记或CSS样式“讲述” Excel以将单元格的内容显示为文本? 问题答案: 您可以将格式应用于数字,文本,日期等的单元格。 请参阅我以前关于此的答案:HTML toExcel:如何告诉Excel将列视为数字? (已调整的代码段) 如果将CSS类添加到页面: 并在您的TD上拍那些课,行得通吗?

  • 如果有人帮我解决这个问题,我会非常感激。 我正在为我的项目使用codeigniter框架。并想将我的图像上传到amazon s3桶中。当我尝试使用S3.php文件时 string(92)“不支持您提供的授权机制。请使用AWS4-HMAC-SHA256。” 有人能帮我解决这个问题吗。

  • 当我试图将一个文件从Angular 5.2上传到Laravel5.5应用程序时,我遇到了一个奇怪的行为。文件数据在服务器端不可见/不可访问。 我试过不同的头和方法,但似乎都失败了- HTML: 浏览器的开发人员工具显示提交了以下有效负载: 更新控制器代码真的超级简单 当我用一个对象替换formData时: null