Programatik Mengekstrak Lampiran Dari Borang InfoPath (Termasuk nama-nama mereka!)

Saya mempunyai penyelesaian kemasukan perbelanjaan untuk pelanggan yang memanfaatkan InfoPath dan aliran kerja. Pada satu ketika semasa proses kelulusan, Saya perlu untuk menjana e-mel yang mempunyai semua data InfoPath baik serta lampiran diri mereka supaya (mengeluh) seseorang boleh mengambil data dan secara manual semula kunci ke dalam aplikasi pangkalan data Oracle.

Ianya tidak sukar untuk mendapatkan atau menghuraikan bentuk InfoPath. Saya tidak tahu bagaimana untuk mengendalikan lampiran, Walau bagaimanapun. Selepas satu jam atau dua poking sekitar internet dalam (lamanya satu!) Saya mendapati artikel ini: http://support.microsoft.com/kb/892730

Ia menyediakan beberapa kod yang berguna untuk cabutan lampiran dari nod dalam bentuk. (Anda masih perlu untuk mencari nod dan semua yang, tetapi itu hanya parsing XML).

Saya tahu bahawa lampiran adalah base64-dikodkan dan saya asalnya turun jalan hanya mengekstrak data yang base64, decoding dan menyimpannya. Walau bagaimanapun, Saya cepat sedar yang saya tidak tahu bagaimana untuk mendapatkan nama fail itu sendiri sehingga saya mendapati artikel yang dinyatakan di atas.

Saya sebenarnya telah mendapati bahawa agak awal, tetapi saya telah ditangguhkan oleh perpecahan personaliti yang. Dalam satu tangan, Artikel * berkata * ia adalah baik untuk InfoPath 2007. Namun, kod dan arahan semua tentang Visual Studio 2003 dan rujukan kepada InfoPath 2003.

Bottom line, kod yang artikel yang diperuntukkan adalah bekerja dengan baik bagi saya (setakat ini). Saya boleh mendapatkan borang InfoPath saya, Saya boleh menghurai ia, Saya boleh mencari dan menyahkod lampiran dan saya tahu namanya. Apa yang lebih boleh satu tanya hidup seseorang?

</akhir>

Langgan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Technorati Tags: ,,

Jika anda bimbang bahawa persekitaran SharePoint anda boleh menjadi anak lelaki yang tidak sihat, izinkan saya membantu anda menetapkan bahawa dengan pemeriksaan kesihatan.

Tinggalkan Jawapan

alamat e-mel anda tidak akan diterbitkan. Ruangan yang diperlukan ditanda *