restmarklogicmimemlphpnosql

MarkLogic doesn't recognize mime type of file


I'm building an application that inserts documents into MarkLogic server using the MLPHP library. The problem is when I insert a binary document, for example a PDF. The mime type will not be set properly, therefore the file cannot be opened as it should.

This is the code I use to insert a 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');

This is a dump of the $doc object after submitting to the server:

And here we have the inserted document in the search results:

But as expected, the browser cannot handle the file due to the wrong mimetype:

Anyone has got a clue what's going wrong here?


Solution

  • Check to see what the Response Header for content type is.

    You Might have to set the format URL Parameter to binary. You can read the full documentation at http://docs.marklogic.com/REST/GET/v1/documents

    here is what the request would look like

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