サーバー側には、正しい DOCX ファイルがあります。ディスクからファイルを読み取り、JSP を介してフラッシュする Java コードがあります。
ファイルをダウンロードすると、Office から、ファイルにエラーが含まれていると表示されます。これは私のJSPのコードです:
File dir = new File("c:\\file_test.docx");
FileInputStream fin = new FileInputStream(dir);
byte fileContent[] = new byte[(int)dir.length()];
fin.read(fileContent);
fin.close();
response.setHeader("Content-Disposition", "attachment;filename=file_test.docx");
response.setContentLength((int)dir.length());
response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=utf-8");
response.getOutputStream().write(fileContent);
response.getOutputStream().flush();
ダウンロードしたファイルの末尾に空白行が含まれていることがわかりました。メモ帳でファイルを開いてスペースを削除すると、ファイルが正しく開きます。
私の質問は、JSP でバイナリ ファイルの末尾にある空白を削除するにはどうすればよいですか? 最後を除くすべてのバイトをファイルに含めようとしましたが、うまくいきません。
行 6238 を削除すると、Office はファイルを正しく開きます。メモ帳++で編集
あなたの助けが必要です!