[résolu] Fichier corrompu après upload par automation PHP

Bonjour,

J'utilise Nuxeo Automation PHP pour envoyer des documents sur Nuxeo depuis mon application web. J'ai réussi à faire les requêtes pour envoyer les fichiers sur Nuxeo, cependant, lorsque je télécharge un fichier que j'ai envoyé, celui ci est corrompu.

Avez vous déjà rencontré ce problème ?

Voici la requête que j'utilise pour attacher mon fichier :

$answer = $nuxeoSession->newRequest(“Blob.Attach”)

   ->set('type', 'File')
   ->set('params', 'document', $this->data['Nuxeo']['uid'])
   ->loadBlob($this->data['Nuxeo']['doc']['tmp_name'],
         $this->data['Nuxeo']['doc']['type'], $this->data['Nuxeo']['doc']['name'])
   ->sendRequest();

Cordialement,

Goulven Brisson

0 votes

1 answers

1591 views

ANSWER



Après avoir fouillé encore quelques heures sur internet, un post m'a mis la puce à l'oreille :

A la ligne 137 de NuxeoAutomationUtilities.php il y a ce code :

$data = "\r\n" . $data . $blobheaders . $this->blobList[$cpt][2] . "\r\n"  . "\r\n" ;

Mon problème était dû au fait qu'il y avait deux “\r\n”. En supprimant l'un des deux, il n'y a plus de soucis, et mes documents ne sont plus corrompus.

1 votes



Merci pour ce retour. Est ce un bug de la librarie ?
07/17/2013

Oui en effet, ça vient de la librairie, du fichier NuxeoAutomationUtilities.php, dans la fonction multiPart().
07/17/2013

Merci Goulven, c'est corrigé. N'hésite pas si tu as d'autres retours de ce genre :)
07/17/2013

De rien, j'aime autant mettre la correction directement ici puisque j'ai cherché quelques heures avant de pouvoir trouver cette solution. Par contre, depuis que j'ai effectué cette modification, les fichiers que je télécharge depuis FireFox n'ont plus d'extension s'ils contiennent un espace dans leur nom. Je n'ai plus que le premier mot du titre.. Savez vous d'où cela peut venir ?
07/17/2013

Bon du coup j'ai corrigé mon dernier bug en remplaçant les espaces par des underscores quand l'utilisateur est là depuis Firefox… Ce n'est pas très joli, mais je n'ai trouvé que ça.
07/22/2013