【问题标题】:Getting pdf data from cloudinary and saving it in flutter从 cloudinary 获取 pdf 数据并将其保存在颤振中
【发布时间】:2020-09-19 05:40:39
【问题描述】:

我一直在使用 cloudinary 来存储我的 pdf 文件,并使用 firebase 作为我的后端。但是,我遇到了这个问题。当我在 cloudinary https://res.cloudinary.com/cloudname/raw/upload/vxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxx 提供的链接上使用 http.get 时,我得到的是 ascii 数据而不是 pdf 文件。我试图将数据作为字符串写入扩展名为 .pdf 的文件,但该文件不起作用。我试图将其转换为字节,然后以字节的形式写入文件,但这也没有奏效。关于如何使用颤振在 android 上保存此文件的任何帮助,这将是一个很大的帮助。

    await http.post('https://api.cloudinary.com/v1_1/${DotEnv().env['cloud_name']}/raw/upload',body: { "file": "data:raw/pdf;base64,$pdf", "upload_preset": DotEnv().env['upload_preset']} );
    var response = await http.get('https://res.cloudinary.com/<cloudname>/raw/upload/v1590958359/gsvxe4zp7bb6yyldrccu');
    final directory = await getApplicationDocumentsDirectory();
    final path2 = directory.path;

    File x = File('$path2/trial.pdf');
    x.writeAsString(response.body);

这是我目前拥有的代码。在这种情况下,pdf 是 pdf 的 base64 编码。我在http.get 中的链接来自我已经上传的文件。

【问题讨论】:

  • 您能分享一下您现在如何尝试实现这一目标的代码吗?
  • 能否分享一个我们可以查看的 PDF 的示例 URL?
  • @TolgaKartal 我已经用代码更新了它。
  • @AleksandarKostadinov 我已经用代码更新了它。

标签: flutter cloudinary


【解决方案1】:

感谢您添加更多详细信息。

首先,我建议您将resource_typeraw 更改为image。此外,请将 Base64 数据 URI 中的 MIME 类型更新为 application/pdf

您在成功上传后从 Cloudinary 获得的 URL 将是一个 PDF 资源,这意味着您可以通过简单的 cURL 请求或通过任何 HTTP 库下载它。

例如,使用 secure_url 到 Upload API Response 中返回的资产将文件下载到 my_test_file.pdf -

curl -s https://res.cloudinary.com/demo/image/upload/multi_page_pdf.pdf --output my_test_file.pdf

【讨论】:

    猜你喜欢
    • 2021-03-26
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 2022-01-13
    • 2022-01-01
    • 2019-11-21
    相关资源
    最近更新 更多