Attachment Upload über RPC

  • Hallo :)


    Gibt es eine möglichkeit, wenn man über die RPC-Schnittstelle ein Item erstellt sofort ein Attachment anzuhängen?


    Und im nachhinein dieses Attachment über das Item wieder aufzurufen?

  • Hallo,


    Anhänge lassen sich ab einer bestimmten Dateigröße nur sehr schlecht in XML-RPC oder JSON-RPC verpacken. Damit auch Große Anhänge möglich sind, verwendet GREYHOUND hier Anfragen via POST an https://server.de/xmlrpc/ItemNewAttachment123 (123 ist die ID des neuen Elements). Der Content-Type des Post-Requests ist "application/octet-stream". Der Dateiname wird im HTTP-Header für den Content-Type kodiert.


    Ein neues Element mit Anhang wird also so erzeugt:


    RpcItems.New(Item, True); // Element gesperrt erzeugen


    Nun wird der Anhang bzw. die Anhäge hochgeladen. Die o.g. Funktion liefert die ID des Elements zurück. Dazu wird einfach eine POST-Anfrage an o.g. Adresse mit dem entsprechenden ContentType gerichtet werden.


    RpcItems.Unlock(ItemID); // Wenn alle Angänge hochgeladen wurden, wird das Element entsperrt.


    Der Anhang muss dem neuen Element vorab nicht im Item.Attachments Array mitgeteilt werden. Der entsprechende Eintrag wird bei einem erfolgreichen Upload automatisch angelegt.


    Über https://server.de/xmlrpc/ItemsAttachment123 kann der Anhang wieder heruntergeladen werden. 123 ist in diesem Fall die ID des Anhangs.