Bonjour à tous,
Je suis actuellement en train de développer une fonctionnalité pour mon site web, pour ce faire j'ai besoin d'enregistrer un blob en base de donnée qui est un très long code binaire. Quand j'essaie de le récuperer avec Php / Symfony, tout ce passe bien (je récupère une ressource de type flux), mais j'ai besoin d'envoyer ce code binaire via de l'XHR.
Cependant, les Response de Symfony n'accepte pas que ce soit une ressource et j'ai vraiment besoin qu'il n'y ai pas de conversion histoire de ne pas corrompre le code. Du coup je suis un peu perdu sur cette partie, je vous mets des extraits de code ci-dessous.
Merci de votre réponse :)
Partie récupération et envoie via Symfony :
Partie Xhr :Code:
1
2
3
4
5
6
7
8 /** * @Route("/drawing/getBlob/{uniqid}", name="drawing_get_blob") * @Method("GET") */ public function getBlob(Project $project, Request $request) { return new Response($project->getProjectBlob(), 200, ['Content-type' => 'application/octet-stream']); }
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 var xhr = new XMLHttpRequest(); var paramUniqId = encodeURIComponent(projectUniqId); xhr.open('GET', '/drawing/getBlob/'+paramUniqId); xhr.responseType = "binary"; xhr.addEventListener('readystatechange', function() { // On gère ici une requête asynchrone if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) { // Si le fichier est chargé sans erreur let blob = xhr.responseText; console.log(blob); app.openFromBlob(blob, (e) => { console.log(e); }); } }); xhr.send(null);
Erreur Symfony :
Pièce jointe 482723