0

我正在尝试使用<input type='file'>和 Contentful manangement api 从浏览器中选择一个文件。

我使用网络上已经存在的文件对其进行了测试,例如此处的示例: Angular&Contentful:无法在空间内创建资产 并且效果很好,当我选择一个文件并尝试从生成的blob中使用它时,问题就来了。这就是我所做的:

fileChangedHandler = (e) => {
  const file = e.target.files[0];
  if (file) {
    this.setState({
      file: {
        selectedFile: file,
        fileUrl: URL.createObjectURL(file),
      },
    });
  }
};

然后我在fileUrl这里使用作为上传资产:

environment.createAsset({
  fields: {
    title: {
      [locale]: selectedFile.name,
    },
    file: {
      [locale]: {
        contentType: selectedFile.type,
        fileName: selectedFile.name,
        upload: fileUrl,
      },
    },
  },
})

但是我收到一条错误消息,指出该值与正则表达式验证不匹配,因为它以“blob”而不是正确的 url 开头 错误 1

我也尝试selectedFileupload属性中使用,但它再次引发另一个错误: 错误 2

有任何想法吗?谢谢!

4

1 回答 1

1

我很难解决这个问题,但你可以看看这个例子。

https://github.com/contentful-labs/file-upload-example :)

它使用 Content Management API 上传文件。

于 2018-11-14T10:10:05.493 回答