ich möchte ein PDF hochladen, erzeuge dazu erst eine mediaId. Die PDF-Daten habe ich in einem base64Encoded String. Ich schaffe es aber nicht, die Daten hochzuladen.
Ich erhalte immer das folgende Result:
{„errors“:[{„status“:„404“,„code“:„CONTENT__MEDIA_NOT_FOUND“,„title“:„Not Found“,„detail“:„Media for id 1e23680b921641a9bc3804dd12e07889 not found.“,„meta“:{„parameters“:{„mediaId“:„1e23680b921641a9bc3804dd12e07889“}}}]}
Call zu Shopware wäre der hier:
/api/_action/media/[myMediaID]/upload?extension=pdf&fileName=12345
Im Body soll dann sicher der base64Encoded String mitgegeben werden.
Fragen dazu:
Welche Header muss ich mitgeben ? Muss ich explizit einen Content-Type mitgeben und wenn ja, welchen ? Wie muss der Body mitgegeben werden ?
Hat jemand das schon mal gemacht und vielleicht ein Beispiel dazu für mich ?
Die Daten müssten NICHT als base64 sondern als octet-stream gesendet werden. Hängt dann vom Client wie man das macht.
curl ... --data-binary @/var/www/temp/zxy.pdf
(die Magie kommt hier von dem @-Zeichen !)
Andere Client machen das anders.
Ich bin mir gerade nicht 100% sicher ob man PDF Dateien auch als media-file ablegen kann. Ich denke schon. Aber jeden Fall werden die Dateien kann nicht angezeigt. Ist aber alles ein anderes Problem.
kleiner Ausschnitt aus einem PHP Script was den den Upload macht:
(Achtung das ist nicht komplett, da fehlt das finale CURL-exec und die Daten kommen hier aus einem PIM; $asset object, lässt sicher aber sicher auch in PHP abbilden.)
Was übergebe ich denn als binary file body, einen Stream kann ich ja nicht schicken… und du sagtest NICHT als base64… ich bin ratlos, weil es bei mir mit allen möglichen Varianten und Clients nicht funktioniert. Letzter Versuch war mit Indy und TIdMultiPartFormDataStream… da gefällt dem Server die content-lenght nicht… PHP hilft mir nicht viel weiter.
vorne das @ nicht vergessen, dann packt curl den Inhalt der Datei in den Body.
content-type ist dann „application/pdf“ und der Bearer Token müsste auch gesetzt werden …
Ich muss gestehen, ich habe keine Ahnung, was Du meinst.
CMD Line ? Ich habe eine Delphi Anwendung, mit der ich versuche, ein PDF hochzuladen.
Es kann doch nicht sein, dass ich der erste bin, der damit Probleme hat. Ich finde hier im Forum leider nichts dazu.