<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic DotCMIS content update writing first byte only in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/dotcmis-content-update-writing-first-byte-only/m-p/309010#M262140</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hallo&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm trying to update a document content using DotCMIS and C#, but the content is getting the first byte only.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I followed an example I found over the net (&lt;/SPAN&gt;&lt;A href="http://www.c-sharpcorner.com/UploadFile/surya_bg2000/alfresco-integration-with-net-using-cmis/" rel="nofollow noopener noreferrer"&gt;here&lt;/A&gt;&lt;SPAN&gt;) and matching it with Apache CMIS documentation written in Java (&lt;/SPAN&gt;&lt;A href="https://chemistry.apache.org/java/developing/guide.html" rel="nofollow noopener noreferrer"&gt;here&lt;/A&gt;&lt;SPAN&gt;).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In any way I'm getting a file with the first character only, eg. "T" in the example string.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The only difference I see is the UTF-8 encoding: in my code, the string.toCharArray() method use Unicode encoding.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But at runtime the "file" variable has the correct length (36 bytes) and Alfresco reports the same length for the final document.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;With a MIME type of "text/plain" the content has correct length but wrong charset.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Any advice will be greatly appreciated, thanks in advance!&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // fake file&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string fileContent = "This is content for a fake file";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] file = GetBytes(fileContent);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // define new document stream object&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ContentStream contentStream = new ContentStream&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileName = fileName,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Length = file.Length,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MimeType = "application/msword",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stream = new MemoryStream( file)&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Document doc = ((Document)session.GetObjectByPath(parentFolder.Path +"/" + fileName));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc.UpdateProperties(properties);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; doc.SetContentStream(contentStream, true);&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt;where GetBytes is a custom defined function &lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;static byte[] GetBytes(string str)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] bytes = new byte[str.Length * sizeof(char)];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bytes;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 10 Mar 2014 21:32:42 GMT</pubDate>
    <dc:creator>lordzoster</dc:creator>
    <dc:date>2014-03-10T21:32:42Z</dc:date>
    <item>
      <title>DotCMIS content update writing first byte only</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/dotcmis-content-update-writing-first-byte-only/m-p/309010#M262140</link>
      <description>HalloI'm trying to update a document content using DotCMIS and C#, but the content is getting the first byte only.I followed an example I found over the net (here) and matching it with Apache CMIS documentation written in Java (here).In any way I'm getting a file with the first character only, eg. "</description>
      <pubDate>Mon, 10 Mar 2014 21:32:42 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/dotcmis-content-update-writing-first-byte-only/m-p/309010#M262140</guid>
      <dc:creator>lordzoster</dc:creator>
      <dc:date>2014-03-10T21:32:42Z</dc:date>
    </item>
    <item>
      <title>Re: DotCMIS content update writing first byte only</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/dotcmis-content-update-writing-first-byte-only/m-p/309011#M262141</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Can't help you with th c# bits.&amp;nbsp; But &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;a) can you specify the content encoding anywhere?&amp;nbsp; In particular in the contentstream.&amp;nbsp;&amp;nbsp; I'm wondering if the default will be some windows charset.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;B) There's equivalent string to byte conversion methods in java that do not specify charset.&amp;nbsp;&amp;nbsp; They are a menace and a frequent source of bugs and should be avoided ( for methods that do specify the charset)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;C) the length of your variable bytes is dodgy.&amp;nbsp; UTF8 is 1 to 4 bytes per char.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Mar 2014 08:44:46 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/dotcmis-content-update-writing-first-byte-only/m-p/309011#M262141</guid>
      <dc:creator>mrogers</dc:creator>
      <dc:date>2014-03-11T08:44:46Z</dc:date>
    </item>
    <item>
      <title>Re: DotCMIS content update writing first byte only</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/dotcmis-content-update-writing-first-byte-only/m-p/309012#M262142</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;And your mimetype is wrong.&amp;nbsp; Should be "text/plain"&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Mar 2014 10:14:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/dotcmis-content-update-writing-first-byte-only/m-p/309012#M262142</guid>
      <dc:creator>mrogers</dc:creator>
      <dc:date>2014-03-11T10:14:00Z</dc:date>
    </item>
    <item>
      <title>Re: DotCMIS content update writing first byte only</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/dotcmis-content-update-writing-first-byte-only/m-p/309013#M262143</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hallo thank you, the problem was actually encoding.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I solved using System.Text.Encoding.UTF8.GetBytes(string) that, along with "charset=UTF-8", gave the correct results.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Mar 2014 10:43:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/dotcmis-content-update-writing-first-byte-only/m-p/309013#M262143</guid>
      <dc:creator>lordzoster</dc:creator>
      <dc:date>2014-03-11T10:43:00Z</dc:date>
    </item>
    <item>
      <title>Re: DotCMIS content update writing first byte only</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/dotcmis-content-update-writing-first-byte-only/m-p/309014#M262144</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Why is "application/msword" wrong mimetype for creating a word binary file?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Actually the file now gets created correctly, and when viewed offline is OK, but Alfresco states it cannot preview the file content.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In my project I'm going to programmatically create a in-memory DOCX using OpenXML SDK and then upload it to Alfresco via CMIS.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;How else could I upload/create (if not exists) a binary file like this?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Mar 2014 10:49:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/dotcmis-content-update-writing-first-byte-only/m-p/309014#M262144</guid>
      <dc:creator>lordzoster</dc:creator>
      <dc:date>2014-03-11T10:49:00Z</dc:date>
    </item>
  </channel>
</rss>

