2017-06-09 6 views
2

へのサーバ(UNIXマシン)にDOCファイル(例test.docを)をアップロードしている間、私が持っているサーバー側で私にFormFileインスタンスを与えるapache commons jarファイルを使用していますバイト配列形式のすべてのデータ。MSワードファイルのダウンロードの問題UNIXサーバーからWindows

同じバイト配列を応答出力ストリームに書き込んで同じファイルをダウンロードするためにブラウザに送信すると、奇妙な内容が表示されます。私は私が次のようにデータと奇妙なデータが設定されていることdoc.Theコンテンツタイプに示されている見たいでエンコーディングを選択するために、1つのポップアップを得る:

response.setContentType("application/msword"); 
response.setHeader("Content-Disposition", "attachment;filename=test.doc"); 

私は思う出力ストリームにデータを書き込み中この問題の原因となるdocファイルに関連するメタデータも書き込まれます。

docまたはdocxファイル形式に固有のものはありますか?ファイルは適切な形式であり、アップロードされた正しいデータを見ることができますか、何か不足していますか?

ご協力いただければ幸いです。

ありがとうございました。

詳細情報が必要な場合はお知らせください。

+1

ファイルのファイルです。ファイルの内容を操作する必要はありません。コンテンツのダウンロード時にコンテンツ設定に問題が発生している可能性が高くなります。 –

+0

アップロード時に入力ストリームをどのように読んでいますか?ダウンロード時に出力ストリームをどのように書いていますか? –

+0

私はこれに対する解決策を見つけました。ファイルへのデータの読み書きに間違いはありませんでした。代わりに、問題は、応答を乱していたフィルタの1つでした。私はこれまでに受け取ったすべての反応に本当に感謝しています。みんな、ありがとう。 –

答えて

0

私は周りのすべてのテストを実行していないので、それはあなたの問題の修正ではないかもしれない Encoding Pop Up

0

のための回避策を提供し、マイクロソフトの既知の問題があります。しかし、正しいMIMEタイプをチェックするには、このリンクを参照してください。

https://technet.microsoft.com/en-us/library/ee309278(office.12).aspx

更新:

あなたはArrayBufferとして応答タイプを使用して、ブロブなどのコンテンツを設定することができます。

Blob([response], {type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'}); 

それとも、これは仕事ができる

response.setContentType("application/x-msdownload"); response.setHeader("Content-disposition", "attachment; filename="+ fileName);

関連する問題