Ich versuche, Bilder mit der SOAP-API mit C# auf eine Magento-Site hochzuladen.Hochladen von Bildern über die Magento SOAP-API
Dies ist, was ich bisher habe, aber es funktioniert nicht, keine Ausnahmen werden geworfen oder irgendetwas anderes, aber wenn ich gehe und auf der Website das Bild leer ist.
Muss ich den Base64Encode tun? Ich habe das wirklich nur probiert, weil this PHP-Beispiel etwas Ähnliches tut. Wenn ich es ohne versuche, bekomme ich eine SOAP-Ausnahme mit der Fehlermeldung "Bad Request".
FileStream fs = File.OpenRead(@"c:\1.jpg");
StreamReader sr = new StreamReader(fs);
string fileConent = sr.ReadToEnd();
byte[] encbuff = Encoding.UTF8.GetBytes(fileConent);
string enc = Convert.ToBase64String(encbuff);
var imageEntity = new catalogProductImageFileEntity();
imageEntity.content = enc;
imageEntity.mime = "image/jpeg";
sr.Close();
fs.Close();
var entityP = new catalogProductAttributeMediaCreateEntity();
entityP.file = imageEntity;
entityP.types = new[] {"image", "small_image", "thumbnail"};
entityP.position = "0";
entityP.exclude = "0";
_m.catalogProductAttributeMediaCreate(MageSessionProvider.GetSession(), SKU, entityP, "default");
+1 hat super funktioniert. Nur eine Frage: Wenn ich mehrere Bilder habe und eine foreach-Schleife um den gesamten Code gewickelt habe, wird die richtige Anzahl von Bildern hochgeladen, aber sie sind immer nur ein Bild. Muss ich den MemoryStream nach jeder Reizung der Schleife entsorgen? Vielen Dank! –
Danke dafür. Ich habe gerade ein Projekt gestartet, um ein bestehendes System in Magento zu integrieren, und die Dokumentation ist praktisch nicht vorhanden. Das war genau das, was ich brauchte. – Archer
Wenn ich Ihnen + 10^19 hätte geben können, würde ich. –