我正在尝试使用带有C#的SOAP API将图像上传到Magento站点.
这是我到目前为止,但它没有工作,没有抛出异常或任何东西,但当我去网站上看图像是空白.
我需要做Base64Encode吗?我只是尝试过这个,因为这个 PHP示例做了类似的事情.如果我尝试没有,我会收到错误消息为"错误请求"的SOAP异常.
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");
Run Code Online (Sandbox Code Playgroud)
Dan*_*Dan 14
这花了我DAYS来解决....这是怎么做的
public void UploadProductImage(string SKU, string path)
{
var imageStream = new MemoryStream();
using (var i = Image.FromFile(@"c:\ProductImages\" + path))
{
i.Save(imageStream, ImageFormat.Jpeg);
}
byte[] encbuff = imageStream.ToArray();
string enc = Convert.ToBase64String(encbuff,0 , encbuff.Length);
var imageEntity = new catalogProductImageFileEntity();
imageEntity.content = enc;
imageEntity.mime = "image/jpeg";
imageStream.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");
Console.WriteLine("Image Uploaded");
}
Run Code Online (Sandbox Code Playgroud)