2014-05-21 3 views
1

Je suis en train de créer une application qui insère des documents dans le serveur MarkLogic en utilisant le MLPHP library. Le problème est lorsque j'insère un document binaire, par exemple un PDF. Le type mime ne sera pas défini correctement, par conséquent le fichier ne peut pas être ouvert comme il le devrait.MarkLogic ne reconnaît pas le type de fichier mime

Voici le code que j'utilise pour insérer un document:

// initialize REST client 
$client = new MLPHP\RESTClient('127.0.0.1', 8010, 'v1', '', 'rest-writer-user', 'writer-pw'); 

// create new document and load content 
$doc = new MLPHP\Document($client); 
$doc->setContentType("application/pdf"); 
$doc->setContentFile("demo.pdf"); 
$doc->write('pdf_demo'); 

Ceci est une décharge de l'objet doc $ après avoir envoyé au serveur: http://i58.tinypic.com/15fiyhc.png

Et nous avons le document inséré dans les résultats de recherche: http://i60.tinypic.com/2e2ihcg.png

Mais comme prévu, le navigateur ne peut pas gérer le fichier en raison de la mauvaise mimetype: http://i60.tinypic.com/20pu0e0.png

Quelqu'un a une idée de ce qui ne va pas ici?

+0

Avez-vous essayé de mettre le pdf en ML avec une commande curl et vérifier si les travaux de type de contenu? Exemple: curl --anyauth --user rest-writer-utilisateur: writer-pw -T ./pdf_demo.pdf -i -H "Type de contenu: application/pdf" http: // localhost: 8010/v1/documents? uri =/pdf_demo.pdf – prker

Répondre

1

Vérifiez ce que l'en-tête de réponse pour le type de contenu est.

Vous devrez peut-être définir le paramètre URL de format sur binaire. Vous pouvez lire la documentation complète à http://docs.marklogic.com/REST/GET/v1/documents

ici est ce que la demande ressemblerait

http://localhost:8010/v1/documents?uri=/pdf_demo.pdf&format=binary 
+0

Cela semble fonctionner, merci! – Arne