Retrieving a file path is not supported when trying to load a media image from Tridion 2011 SP1

I get "This path format is not supported." when I just try to download a multimedia image from my SDL Tridion 2011 SP1, below is the path that I get, I donโ€™t know how โ€œN:โ€ etc. go

D: \ delete \ Images \ N: \ dmc.FlipMedia.Clients.TestCMS \ 2009_WorkInProgress \ creatives \ 05_May \ Children under 16 go to the UK \ assets_graphics \ jpg \ Kids_go_free_385x306.jpg

Below is the code:

public static void GetBinaryFromMultimediaComponent(string tcm, CoreServiceClient client, StreamDownloadServiceClient streamDownloadClient) { ComponentData multimediaComponent = client.ReadItem(tcm) as ComponentData; // Generate you own file name, and file location string file = "D:\\delete\\Images\\" + multimediaComponent.BinaryContent.Filename;//Here I am getting above path // Write out the existing file from Tridion FileStream fs = File.Create(file);//Here getting the exception byte[] binaryContent = null; if (multimediaComponent.BinaryContent.FileSize != -1) { Stream tempStream = streamDownloadClient.DownloadBinaryContent(tcm); var memoryStream = new MemoryStream(); tempStream.CopyTo(memoryStream); binaryContent = memoryStream.ToArray(); } fs.Write(binaryContent, 0, binaryContent.Length); fs.Close(); } 

Please suggest !!

Edit:

I got the file name using Nuno Suggestions, but on my way to

  Stream tempStream = streamDownloadClient.DownloadBinaryContent(tcm); 

I get below errors, any suggestions on this?

 The content type multipart/related; type="application/xop+xml";start="";boundary="uuid:5f66d04b-76d3-4d3a-b8e3-b7b91e00ed32+id=2";start-info="text/xml" of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 595 bytes of the response were: ' --uuid:5f66d04b-76d3-4d3a-b8e3-b7b91e00ed32+id=2 Content-ID: Content-Transfer-Encoding: 8bit Content-Type: application/xop+xml;charset=utf-8;type="text/xml" '. 
+4
source share
2 answers

As you probably guessed, string file = "D:\\delete\\Images\\" + multimediaComponent.BinaryContent.Filename; will add the full file name (including the path) and therefore will create the wrong path.

Try using something like string file = "D:\\delete\\Images\\" + Path.GetFilename(multimediaComponent.BinaryContent.Filename);

+5
source

Do this: -

 Stream tempStream = streamDownloadClient.DownloadBinaryContent(tcmId); MemoryStream memoryStream = new MemoryStream(); int b; do { b = tempStream.ReadByte(); memoryStream.WriteByte((byte)b); } while (b != -1); binaryContent = memoryStream.ToArray();โ€‹ 
0
source

All Articles