尝试从Tridion 2011 SP1下载多媒体图像时不支持获取文件路径

我得到“不支持给定路径的格式。”当我仅尝试从SDL Tridion 2011 SP1下载多媒体图像时,下面是我所得到的路径,不知道“N:”等是如何来的。尝试从Tridion 2011 SP1下载多媒体图像时不支持获取文件路径

d:\删除\ \图片N:\ dmc.FlipMedia.Clients.TestCMS \ 2009_WorkInProgress \创意\ 05_May \儿童16岁以下免费去英国\ assets_graphics \ JPG \ Kids_go_free_385x306.jpg

下面是代码:

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();

}

请建议!

编辑:

我用努诺建议,但前进到

Stream tempStream = streamDownloadClient.DownloadBinaryContent(tcm); 

我得到下面的错误,在此任何建议的文件名?

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" '. 

回答:

正如你可能已经想通了,string file = "D:\\delete\\Images\\" + multimediaComponent.BinaryContent.Filename;将追加完整的文件名(包括路径),因此产生一个错误的道路。

尝试使用类似string file = "D:\\delete\\Images\\" + Path.GetFilename(multimediaComponent.BinaryContent.Filename);

回答:

做到这一点的方法: -

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();​

以上是 尝试从Tridion 2011 SP1下载多媒体图像时不支持获取文件路径 的全部内容, 来源链接: utcz.com/qa/257548.html

回到顶部