Directus API : download file

Bonjour,

Pour l’un de mes formulaires, j’ai besoin de pouvoir télécharger des fichiers pour les afficher ensuite, je passe donc par le protocole de l’API prévu à cet effet :

  uploadFile(List<int> fileBytes, String filename, String? contentType) async {
    print("contentType = $contentType");
    final result = await _apiManager.uploadFile(
        fileBytes: fileBytes, filename: filename, contentType: contentType);
    //print(result.getDownloadURL());
  }

Mais, comme vu dans le coaching de groupe (avril 2023), il est nécessaire de préciser le contentType sans quoi nous téléchargeons juste un binaire.

Ainsi, si mon content type représente bien l’extension, Flutter me renvoie une erreur :

Error: Error on line 1, column 4: Invalid media type: expected "/".

Savez-vous de quoi il s’agit ?

Surtout qu’il n’y a pas vraiment d’indice dans l’API :

 @override
  Future<DirectusFile> uploadFile(
      {required List<int> fileBytes,
      required String filename,
      String? title,
      String? contentType,
      String? folder}) {
    return _sendRequest(
        prepareRequest: () => _api.prepareNewFileUploadRequest(
            fileBytes: fileBytes,
            filename: filename,
            title: title,
            contentType: contentType,
            folder: folder),
        parseResponse: (response) => _api.parseFileUploadResponse(response));
  }

Bon, finalement c’était simple…

  contentType: "image/$contentTypeFile");
1 « J'aime »

Oui, il faut fournir un type MIME valide.
Voici plus d’infos : Types MIME - HTTP | MDN

1 « J'aime »