[PHP SPS] image data uit sharepoint database trekken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zit wat te hacken in de microsoft sharepoint server database. Het is me onder andere al gelukt om data van lijsten uit de db te plukken door gewoon direct in de tebellen te gaan snuffelen. Alleen nu wil ik dus image data eruit gaan halen.

Volgens mij staat ook alle binaire data die in sharepoint staat opgeslagen in de database gepropt ergens. Sharepoint zelf komt wel met een boek en voorbeelden, maar dat is allemaal zo'n oerwoud van aspx bestanden, stored procedures en overhead, dat ik liever gewoon direct een draadje aanleg naar waar ik moet zijn. Dat werkte in het geval van de lijsten erg goed.

Ok, nu de plaatjes. Er is dus een tabel "Docs" met onder andere de velden DirName en LeafName. Als je een query runt op een bepaalde DirName, krijg je mooi alle items (bestanden en dirs) als records terug met hun naam als LeafName. Plaatjes staan hier ook netjes in. Verder nog wat id's van webs, sites en lists waar ze bij horen, da's verder niet interessant. Overzichtje:

Afbeeldingslocatie: http://www.rikkertkoppes.com/troep/sps_docs.gif

je ziet onderaan onder andere de velden Content en CheckoutContent, van het type "image" dat klonk dus wel erg interessant. Alleen als ik de inhoud van dat veld gewoon echo, krijg ik vrijwel niks, iets a la "?????Aa??"

Da's lang niet genoeg data voor een plaatje, lijkt me eerder een pointer oid naar ergens anders. Maar geen idee dus waarheen.

Iemand ervaring met sharepoint database architectuur? waar zou ik m'n plaatje (data) kunnen vinden?

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

Als ik het me goed herinner is een Image niet per se een image, maar een zut binaire data, die je logischerwijs ook niet kan echo-en.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Je kan het niet als iets zinvols echoen idd, maar ook als ik gewoon binaire zut krijg, zou ik meer willen krijgen dan deze 9 bytes. Het gaat me juist om de binaire data van het plaatje (het record waar dat ene veld van 9 bytes aan behoort representeert wel een plaatje en geen .doc oid). Als ik dat eenmaal heb zorg ik er wel voor dat het daadwerkelijk als plaatje geserveerd wordt

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op zondag 20 augustus 2006 @ 12:31:
Je kan het niet als iets zinvols echoen idd, maar ook als ik gewoon binaire zut krijg, zou ik meer willen krijgen dan deze 9 bytes. Het gaat me juist om de binaire data van het plaatje (het record waar dat ene veld van 9 bytes aan behoort representeert wel een plaatje en geen .doc oid). Als ik dat eenmaal heb zorg ik er wel voor dat het daadwerkelijk als plaatje geserveerd wordt
Waar haal je uit dat het maar 9 bytes is?

Mocht je twijfelen: upload dan een plaatje met Profiler er naast. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dat was een goed punt. Ik deed dus echo $rs["content"] en kreeg 9 bytes in m'n browser terug (die 9 chars). Echter toen ik nav je vraag even
code:
1
SELECT datalength(Content)...

deed kreeg ik 85928 terug, precies het getal in het "Size" veld. Dat lijkt dus wel te kloppen.

Blijft de vraag over hoe ik die binaire data dus netjes uit de db haal

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-09 08:50

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dit gaat IMHO meer richting PRG ;)

DTE>>PRG Pikachu!

[ Voor 52% gewijzigd door RobIII op 20-08-2006 14:57 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ondertussen wel he :)

ok, even een update. De mssql extension voor php heb ik niet, dus ik doe het met een adodb connection.

na wat zoeken ben ik begonnen de boel via een ado stream object te laten lopen. De content van het veld inladen in het object (met de write method) lukt. Een echo van de size property geeft de juiste waarde.

vervolgens gewoon echo $strm->Read(-1) geeft die oude 9 bytes terug (in Fx kijken naar de document info)

als ik nu door de stream heen loop en steeds stukjes uitlees, krijg ik een varierende output
PHP:
1
2
3
    while (!$mystream->EOS) {
        echo $mystream->Read(1);
    }

de output hangt heel erg af van die chunk size. Wat zou dat moeten zijn? verder vraag ik me ook af of de data in dat veld alles is. Wellicht moet er nog iets bij?
Pagina: 1