2016-08-03 20 views
0

私はいくつかの高度なヘルプや経験豊富なヘルプが必要です。Coldfusion/Sharpoint/Excelの問題(保存)

これは環境問題であり、特にコードの問題ではありません。エラーはなく、ファイルが保存されます。

Sharepoint 2013のREST APIを使用していて、Excelファイルを取得していて、coldfusion cffile、action = 'write'から保存しています。結果のファイルは2つの方法で破損しています。

第1に、.xlsmファイル拡張子をzipに変更しても、新しいオフィス構造/ファイルが機能しません。 2番目のExcelファイルがExcelで開かず、Excelが破損を修正できませんでした。

soooo .. read readBinaryが存在し、ダンプがダンプに「黄色い」ボックスを表示し、データを切り捨てます。

のcffileアクション「書き込み」は、データのように見える「writebinary」は存在しません...

は、私は、その標準の青色のボックスにそれをSharepointのからデータを取得し、ダンプするとき、存在しますが、切り捨てではありません'readBinary'データのように '黄色'でもありません。

ドキュメンテーションによると、書き込みにはバイナリが必要ではなく、バイナリで認識されるだけです。

// toBinaryを助けていないこれらの関数で返されたデータを・修正は() toBinary(toBase64())作品を失敗しても) toBase64(壊れて動作しますが、破損している 保存直接作品をが、破損しています...バイナリフラグとRESTは私が壊れ背後のjavaに保存しようとした

破損した結果を変更しないなど、SharePointから取得

...

メモ帳で破損したファイルを開くには、++のようになります。ファイルのトップにメモ帳++で開かれたExcelファイル(明らかなデータ問題ありません)

その、奇妙しかし、存在しないファイルへのファイルの参照のように見えるが、ファイルの末尾など0000.dat、trash.datなどなど

As the save, 
and the get (from sharepoint) are all 'working' 
and there would be too much code 
so I am not posting specific code. 

試していない、またはこの特定の問題を解決したアイデアがあれば、私はあなたの熟練したアイデアを聞くことが大好きです。

おかげ ゲイリー

+0

長いと、この短いが.xlsmは、メモ帳で.xlsmのように見える++が、それはないとして保存されます何coldfusionです適切なzipファイル。拡張子を.zipに変更すると、zipユーティリティはそれを開くことができません。これは、破損していない.xlsmファイルで動作します..... – user3005033

+0

Coldfusionダンプ:構造=青、バイナリ=黄; xml = white ...これを追加することができますtoBase64は間違いなく正しくありません。元のファイルの2倍の長さとプレーンなセーブ。私はwinrarを試して「壊れたzipファイルを修正する」。無駄に。データは明らかに優れたファイルではなく、メッセージは早期終了/早期終了でした。 – user3005033

+0

@Leigh、あなたのコメントのためにあなたに感謝したいが、私は非常に特定の誰かを探していて、彼らは存在しないかもしれないと思う。これに答えるには、Sharepoint 2013 Rest APIとColdfusionで最近経験した人が必要になるかもしれません。私はあなたの返事に感謝していますが、問題の理解に足りない数百行ものコードがあります。この時点で、私はPowerShellとCSOMに挑戦しているので、推測は優れています。 – user3005033

答えて

1

[OK]を、私は、コードは参考になりましたかもしれない投稿、私の言葉を食べるつもりです。私はまだ15バージョンの機能を持っていましたが、本当に混乱していました。

私の元のコードは、Sharepointのバイナリ部分を持っていますが、CFHTTPの部分はありません。答え/問題はそこにあり、coldfusionはバイナリデータを保持していませんでした。パラメータが追加されると、 'dump'は変更を 'yellow'バイナリカラーで反映します。

例:cfhttpコールの場合:::

getAsBinary="true" // default is NO not AUTO -> should be auto adobe 

前:

rc.spActionURL = "https://{site}.sharepoint.com/sites/#this.sp365.orisApp#/_api/Web/GetFileByServerRelativeUrl('/sites/#this.sp365.orisApp#/#arguments.libraryPath#/#arguments.folderName#/#arguments.fileName#')/$value"; 
//Perform SharePoint ODATA Query as long as access_token was successfully received. 
cfhttp(method="get", charset="utf-8", 
url="#rc.spActionURL#", result="rc.spURLRequestResult",) { 
    cfhttpparam(name="Accept", type="header", value="application/xml"); 
    cfhttpparam(name="Content-Type", type="header", value="application/vnd.ms-excel.sheet.macroEnabled.12"); 
    cfhttpparam(name="Authorization",   type="header", value="#arguments.AccessToken#"); 
    cfhttpparam(name="binaryStringRequestBody", type="header", value="true"); 
} ; 

AFTER:

rc.spActionURL = "https://{site}.sharepoint.com/sites/#this.sp365.orisApp#/_api/Web/GetFileByServerRelativeUrl('/sites/#this.sp365.orisApp#/#arguments.libraryPath#/#arguments.folderName#/#arguments.fileName#')/$value"; 
//Perform SharePoint ODATA Query as long as access_token was successfully received. 
cfhttp(method="get", 
    getAsBinary="true" // default is NO not AUTO -> should be auto adobe 
    charset="utf-8", 
    url="#rc.spActionURL#", 
    , result="rc.spURLRequestResult",) { 
    cfhttpparam(name="Accept", type="header", value="application/xml"); 
    cfhttpparam(name="Content-Type", type="header", value="application/vnd.ms-excel.sheet.macroEnabled.12"); 
    cfhttpparam(name="Authorization",   type="header", value="#arguments.AccessToken#"); 
    cfhttpparam(name="binaryStringRequestBody", type="header", value="true"); 
} ; 
+0

ああ、それほど小さな何かがこのような大混乱を起こすと、あなたはそれを愛していないのですか?うん、あなたは最終的にそれを理解してうれしいです(とあなたの外交的な反応の歓声;-) – Leigh

+1

ありがとう、私は入力を感謝します。以前のコメントが消えたようです。私はコミュニケーションに注意しようとしていましたが、私はコードを提供する提案に不満はありませんでした...私は私が試みたすべてを投稿することができませんでした!それはウェブ上で誤解するのは簡単です..電子メールなどおそらくこれは誰かを助けるので、私は私の問題/修正を投稿します。 :) – user3005033

+0

*ウェブ上で誤解しやすい*少年ハウディ、あなたのようなレスポンスが非常に爽やかです:)あなたが問題の苦しみに遭遇しているときに、小さなレトロケースを作成するのが理想です。その時点まで。 * RE:あなたの以前のコメントが消えた*はい、私はコメントを残しましたが、あなたはそれを見ていないと思います。基本的に私はそれがCFの問題になるかもしれないと思っていたが、それがSharepoint特有のものであれば、私のコメントはちょうど「ノイズ」だったので、気を散らさないように削除した;-) – Leigh

関連する問題