J'ai un point de terminaison du contrôleur qui sert des fichiers comme suit; ceci fonctionne bien lorsque vous réglez sur Je veux consommer le résultat dans un Cependant, lorsque je désérialise un objet Une erreur est lancée sans 'Caractère inattendu rencontré lors de l'analyse de la valeur:%. Chemin '', ligne 0, position 0. ' P>
BlockQuote> Le retour dans cette situation est un fichier PDF. Quelqu'un peut-il me diriger de l'endroit où je vais mal s'il vous plaît? P> p> src code> sur un
IMG code> Tag et peut confirmer que les fichiers sont envoyés avec succès. p>
blazor code>
rasoir code> page. Je désérialise l'appel en utilisant p>
(code> (avec
jsonconvert.deserializeObject
ex.Message code> lorsque je déboguise et essayé d'évaluer dans la fenêtre de montre, je reçois p>
3 Réponses :
Ah, soulignant l'évidence, mais vous nous dites déjà que waht est faux: p>
Le retour dans cette situation est un fichier PDF. P> blockQuote>
Voir, un fichier PDF n'est pas JSON. P>
Vous essayez de désérialiser un fichier PDF avec un convertisseur JSON: P>
var résultat = jsonconvert.deserializeObject (responsable); p> blockQuote>
Je ne suis pas sûr où vous êtes uget l'idée que cela devrait fonctionner. PDF n'est pas JSON. Heck, Evn "LIFTASSTRAINGASYNC ()" peut ne pas avoir de sens - IAM N'a pas même sûr que PDF est totalement asynchronisé. Ce n'est certainement pas JSON. P>
Merci pour ça, inquiétiquement, elle ne m'a jamais eue. Comment devrais-je désérialiser le filestreamResult code> à un objet ou même
octet [] code> alors s'il vous plaît?
Commencez avec la documentation. Je veux dire, vous avez trouvé lectures - il devrait être trivial pour passer à travers toutes les méthodes d'extension pour trouver celui qui lisait un flux en tant que tableau d'octet. Le contenu est un flux. Stream to Byte Array - Vous me demandez de manière bascielle de lire la documentation pour vous. Ne faisant jamais ça.
Comme TomTom mentionné, vous ne pouvez pas convertir un PDF en JSON, PDF n'est pas comme un texte ou un fichier JSON.
SO dans Blazor, vous devrez faire de la manière suivante. P>
Lorsque vous récupérez le résultat de votre point final, ce sera un flux. Donc, vous pouvez faire ce qui suit pour obtenir le Stream du point final : p> Après avoir obtenu le flux de fichiers, vous devrez une fois que vous l'avez dans Byte Array, c'est maintenant au format de tableau que nous Peut maintenant l'utiliser et le télécharger via le navigateur des utilisateurs. Vous devrez créer les JS suivants pour déclencher le téléchargement du navigateur dans Blazor P> Nous créons essentiellement une ancre dans le DOM HTML et déclenchant un événement de clic ( Source ): P> await JsRunTime.InvokeAsync<object>("saveAsFile", fileStream.Filename,
Convert.ToBase64String(bytes));
Semblable à Réponse de Umair , au lieu de créer une nouvelle filtream et une nouvelle mémoire Morthstream, vous pouvez simplement faire cela: < Pré> xxx pré>
suivez toujours l'exemple Umair Exemple de Code de déclenchement JS Blazor appelant Savisterfileas et Invokeasync. P> P>