<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.infopathdev.com:443/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Code</title><link>https://www.infopathdev.com:443/forums/45.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2007 SP3 (Build: 31118.962)</generator><item><title>Re: How to submit an attachment</title><link>https://www.infopathdev.com:443/forums/thread/96016.aspx</link><pubDate>Wed, 19 Feb 2014 20:02:45 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:96016</guid><dc:creator>esteuardo</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/96016.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=96016</wfw:commentRss><description>&lt;p&gt;Did you ever get this to work?&lt;/p&gt;&lt;p&gt;I was able to get it to work with the following code:&lt;br /&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; CTRL35_5_Clicked(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;object&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; sender, &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;ClickedEventArgs&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; e)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;
&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;p&gt;        {&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// Write your code here.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;XPathNavigator&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; mainDS = MainDataSource.CreateNavigator();&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;

&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; base64EncodedString = mainDS.SelectSingleNode(&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;
&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;my:myFields/my:Attachment&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, NamespaceManager).Value;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;

&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;if&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (!&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;String&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.IsNullOrEmpty(base64EncodedString))&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;
&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;p&gt;            {&lt;/p&gt;&lt;p&gt;                DecoderInfoPathA.&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;InfoPathAttachmentDecoder&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; decoder =&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;
&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; DecoderInfoPathA.&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;InfoPathAttachmentDecoder&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(base64EncodedString);&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;

&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;p&gt;                System.IO.&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;File&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.WriteAllBytes(&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;
&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;@&lt;a&gt;\\Your\Path\Here&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; + decoder.Filename, decoder.DecodedAttachment);&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;
&lt;/font&gt;&lt;/p&gt;&lt;font size="2"&gt;&lt;p&gt;            }&lt;/p&gt;&lt;p&gt;        }&lt;/p&gt;&lt;p&gt;The only problem is that it will only work when the InfoPath form is in full trust... &lt;/p&gt;&lt;p&gt;I was hoping you may know a way to code in C# to have it have full trust when using InfoPath in client version only.&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: How to submit an attachment</title><link>https://www.infopathdev.com:443/forums/thread/50944.aspx</link><pubDate>Sat, 23 Jan 2010 09:12:25 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:50944</guid><dc:creator>Jazzdude</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/50944.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=50944</wfw:commentRss><description>&lt;p&gt;Hi there,&lt;/p&gt;&lt;p&gt;I&amp;#39;ve been trying to achieve a similiar thing myself, and as far as I understand qDabra is the only way to do it (as you can&amp;#39;t upload files directly through infopath or sharepoint as it is). I believe there is a way to do this using K2&amp;#39;s SmartObjects, but i haven&amp;#39;t tried this myself.&lt;/p&gt;&lt;p&gt;Maybe a sneaky way could be to establish a web service you can call, submitting the base64 data and the web service itself saves it as a file?&lt;/p&gt;&lt;p&gt;Let me know if you find a solution, i&amp;#39;d be very interested to see one :) &lt;br /&gt;&lt;/p&gt;</description></item><item><title>How to submit an attachment</title><link>https://www.infopathdev.com:443/forums/thread/40238.aspx</link><pubDate>Wed, 01 Apr 2009 20:41:25 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:40238</guid><dc:creator>buck_murdock</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/40238.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=45&amp;PostID=40238</wfw:commentRss><description>&lt;p&gt;I&amp;#39;ve read through all of the articles on this forum about how to save a file attachment from an infopath form, but i havent yet been able to really get it to work.&amp;nbsp; My form already has a whole bunch of C# code in it, so the qDabra rules won&amp;#39;t work.&amp;nbsp; I&amp;#39;ve tried to use the bizsupportonline.net examples:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.bizsupportonline.net/blog/2009/01/submit-infopath-form-sharepoint-list-attachment/"&gt;http://www.bizsupportonline.net/blog/2009/01/submit-infopath-form-sharepoint-list-attachment/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.bizsupportonline.net/blog/2009/02/submit-file-attached-infopath-form-as-attachment-sharepoint-list-item/"&gt;http://www.bizsupportonline.net/blog/2009/02/submit-file-attached-infopath-form-as-attachment-sharepoint-list-item/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;but can&amp;#39;t get either one to work as i dont have access to the sharepoint server to get the microsoft.sharepoint.dll file to complile the code.&lt;/p&gt;
&lt;p&gt;I found this article, which i can get to work, but it saves the attachment to a folder on the local machine.&amp;nbsp; I&amp;#39;d love to tweak this one a little to have it save to a document library rather than the local disk.&amp;nbsp; The form submit the info to a sharepoint list, if i could get the attachment to attach to that list item that would be best, but if not, at least submit the attachment to a document library and have a way to link the two so that price quotes will be attached to the request form.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://chrissyblanco.blogspot.com/2006/07/infopath-2007-file-attachment-control.html"&gt;http://chrissyblanco.blogspot.com/2006/07/infopath-2007-file-attachment-control.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is the code i&amp;#39;m using that is working thus far:&lt;/p&gt;&lt;font color="#008080" size="2"&gt;&lt;font color="#008080" size="2"&gt;XPathNavigator&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; docXN = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.CreateNavigator();&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#008080" size="2"&gt;&lt;font color="#008080" size="2"&gt;XPathNavigator&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; opnXN = docXN.SelectSingleNode&lt;/p&gt;(&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;&amp;quot;/my:myFields/my:attachment&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;this&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.NamespaceManager);&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;byte&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;[] attachmentNodeBytes = &lt;/font&gt;&lt;font color="#008080" size="2"&gt;&lt;font color="#008080" size="2"&gt;Convert&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.FromBase64String&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;(opnXN.ToString());&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// Position 20 contains a DWORD indicating the length of the&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// filename buffer. The filename is stored as Unicode so the&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// length is multiplied by 2.&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; fnLength = attachmentNodeBytes[20] * 2;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;byte&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;[] fnBytes = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;byte&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;[fnLength];&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// The actual filename starts at position 24 . . . &lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;for&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; i = 0; i != fnLength; i++)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;fnBytes[i] = attachmentNodeBytes[24 + i];&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// Convert the filename bytes to a string. The string &lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// terminates with \0 so the actual filename is the &lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// original filename minus the last character ! &lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;char&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;[] charFileName = &lt;/font&gt;&lt;font color="#008080" size="2"&gt;&lt;font color="#008080" size="2"&gt;UnicodeEncoding&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.Unicode.GetChars(fnBytes);&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; fileName = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(charFileName);&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;fileName = fileName.Substring(0, fileName.Length - 1);&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// The file is located after the header, which is 24 bytes long&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// plus the length of the filename. &lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;byte&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;[] fileContents = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;byte&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;[attachmentNodeBytes.Length - (24 + fnLength)];&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;for&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; i = 0; i &amp;lt; fileContents.Length; ++i)&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;fileContents[i] = attachmentNodeBytes[24 + fnLength + i];&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// We now have an array of bytes (fileContents) which we can &lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;&lt;font color="#008000" size="2"&gt;// do what we like with. I&amp;#39;ll write them to a temporary file &lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#008080" size="2"&gt;&lt;font color="#008080" size="2"&gt;FileStream&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; fs = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#008080" size="2"&gt;&lt;font color="#008080" size="2"&gt;FileStream&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#800000" size="2"&gt;&lt;font color="#800000" size="2"&gt;@&amp;quot;C:\Temp\&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; + fileName, &lt;/font&gt;&lt;font color="#008080" size="2"&gt;&lt;font color="#008080" size="2"&gt;FileMode&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.Create);&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;fs.Write(fileContents, 0, fileContents.Length); fs.Close();&lt;/p&gt;&lt;/font&gt;</description></item></channel></rss>